我下载并安装了vmcloudera4.4来玩hadoop。我已经为我的工作在一个平台上建立了一个集群,所以我知道一点hadoop的工作原理。所以我认为我的问题来自于我对linux和他的用户和团队的误解。
带Hive:
我试着用shell创建一个配置单元表,结果它成功了。我在/user/hive/warehouse/test中有一个表,它属于cloudera组的user cloudera。
我在hdfs:/user/cloudera()中有一些数据文件(.txt)user:cloudera and 组:配置单元)加载到配置单元表中的:
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
我认为这个问题是由于权限问题,但我不知道如何做有权执行请求,什么是更好的方法来做到这一点(在我工作的平台上,我是根,我没有这些困难,但我不明白它是如何工作的)
谢谢你读我的书。
安吉利克
我尝试将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
1条答案
按热度按时间m0rkklqb1#
我在permissions->chgrp:更改“/user/hive/warehouse/test/\u log24310.txt”的所有权时遇到了相同的问题:用户不属于hive。
使用以下命令将名为cloudera的现有用户添加到名为hive的现有组:usermod-a-g hive cloudera
重新启动系统
使用load命令,然后执行selectfrom table\ U name->no data was GET displayed(从表中选择)。
已从表\u name执行select count(),mapreduce作业已启动。
已执行selectfrom table,现在结果已正确返回。
使用impala shell命令打开了一个impala shell。
执行了selectfrom表格名称,未返回任何结果。
已执行命令使impala shell中的元数据无效
已执行命令刷新
table_name
执行的命令显示表格已执行命令selectfrom table\ U name,现在结果将显示在impala shell和hive shell中。