gpt4 book ai didi

hadoop - VM cloudera - 用户cloudera和权限?

转载 作者:可可西里 更新时间:2023-11-01 14:31:43 27 4
gpt4 key购买 nike

我下载并安装了 VM Cloudera 4.4 来玩 Hadoop。我的工作平台上已经有一个集群,所以我对 hadoop 的工作原理略有了解。所以我认为我的问题来自于我对linux和他的用户和群体的误解。


使用 hive :

我尝试用 shell 创建一个 hive 表,它成功了。我在/user/hive/warehouse/test 中有一张表属于 cloudera 组的用户 cloudera。

我在 hdfs 中有一些数据文件 (.txt):/user/cloudera(user:cloudera 和组: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,我没有所有这些困难,但我不明白它是如何工作的)

感谢您阅读我的内容。

天使


我尝试将我的 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”的所有权:用户不属于 hive。

  1. 使用以下命令将名为 cloudera 的现有用户添加到名为 hive 的现有组:usermod -a -G hive cloudera
  2. 重启系统
  3. 使用加载命令,然后执行 select * from table_name -> No data was getting displayed。
  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 中。

关于hadoop - VM cloudera - 用户cloudera和权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com