我下载并安装了 VM Cloudera 4.4 来使用 Hadoop。我已经在我的工作平台上建立了一个集群,所以我知道一点 hadoop 是如何工作的。所以我认为我的问题来自于我对linux以及他的用户和群体的误解。
使用蜂巢:
我尝试使用 shell 创建一个配置单元表,并且它有效。我在 /user/hive/warehouse/test 中有一个表属于 cloudera 组的用户 cloudera。
我在 hdfs : /user/cloudera ( user:cloudera 和 group: hive)中有一些数据文件(.txt),我将它们加载到我的 hive 表中:
LOAD DATA INPATH '/user/cloudera/*.txt' INTO TABLE test;
这是我得到的:
hive> LOAD DATA INPATH '/user/cloudera/jeuDeTest/*.txt' INTO TABLE test;
Loading data to table default.test
chgrp: changing ownership of '/user/hive/warehouse/test/_log24310.txt': User does not belong to hive
chgrp: changing ownership of '/user/hive/warehouse/test/_log24311.txt': User does not belong to hive
Table default.test stats: [num_partitions: 0, num_files: 2, num_rows: 0, total_size: 10161843, raw_data_size: 0]
OK
Time taken: 2.472 seconds
我从未收到过此类错误消息,但文件已移动。如果我尝试一个SELECT *
,没有结果。
使用 HBase :
我在使用 HBase 时也遇到了一些困难。我可以创建一个表,但是当我使用 importTSV 时:
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv
-Dimporttsv.columns=HBASE_ROW_KEY,cf:nl,ch:nt,cf:ti,cf:ip,cf:cr,cf:am,cf:op,cf:mr,cf:ct
'-Dimporttsv.separator=|' testhbase -Dimporttsv.skip.bad.lines=false
/user/cloudera/jeuDeTest/*.txt
我有这个错误:
ERROR security.UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE)
cause:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:
hdfs://localhost.localdomain:8020/user/cloudera/jeuDeTest/_logGeneral_C_24310_SO.txt
Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:
hdfs://localhost.localdomain:8020/user/cloudera/jeuDeTest/_logGeneral_C_24310_SO.txt
我认为这个问题是由于权限造成的,但我不知道如何拥有执行请求的权限,更好的方法是什么。 (在我工作的平台上,我是root,我没有所有这些困难,但我不明白它是如何工作的)
谢谢你读我的书。
Angelik
我尝试将我的 cloudera 用户添加到组配置单元中。我在加载过程中没有出现错误,但选择时始终没有结果。
hive> LOAD DATA INPATH '/user/cloudera/jeuDeTest/*.txt' INTO TABLE test;
Loading data to table default.test
Table default.test stats: [num_partitions: 0, num_files: 10, num_rows: 0, total_size: 10161843, raw_data_size: 0]
OK
Time taken: 0.486 seconds
hive> select * from test limit 20;
OK
Time taken: 0.303 seconds