VM cloudera - 用户cloudera和权限?

2024-03-08

我下载并安装了 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

我对权限 - > chgrp 有同样的问题:更改 '/user/hive/warehouse/test/_log24310.txt' 的所有权:用户不属于配置单元。

  1. 使用命令将名为 cloudera 的现有用户添加到名为 hive 的现有组中: usermod -a -G hive cloudera
  2. 重新启动系统
  3. 使用加载命令,然后执行 select * from table_name -> 没有显示数据。
  4. 执行 select count(*) from table_name 并启动 MapReduce 作业。
  5. 执行 select * from table ,现在结果正确返回。
  6. 使用 impala-shell 命令打开 impala shell。
  7. 执行 select * from table_name 并没有返回任何结果。
  8. 执行的命令使 impala-shell 中的元数据无效
  9. 执行命令刷新table_name
  10. 执行命令显示表
  11. 执行命令 select * from table_name 现在结果显示在 impala-shell 和 hive shell 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VM cloudera - 用户cloudera和权限? 的相关文章

随机推荐