gpt4 book ai didi

java - 尝试以 myuser 身份运行作业时权限被拒绝,但错误提示 root 没有足够的权限

转载 作者:可可西里 更新时间:2023-11-01 16:14:05 25 4
gpt4 key购买 nike

我正在尝试让 Hadoop MapReduce 正常工作,但一直面临访问问题。我不确定是什么问题,是配置问题还是其他问题。

例如,当我运行时,这个字数

hadoop jar /usr/share/hadoop/hadoop-examples-1.2.1.jar wordcount /user/myuser/input.txt /user/myuser/output.txt

我收到以下错误:

14/09/10 20:15:51 INFO input.FileInputFormat: Total input paths to process : 1
14/09/10 20:15:51 INFO mapred.JobClient: Running job: job_201409101946_0010
14/09/10 20:15:52 INFO mapred.JobClient: map 0% reduce 0%
14/09/10 20:15:52 INFO mapred.JobClient: Task Id : attempt_201409101946_0010_m_000002_0, Status : FAILED
Error initializing attempt_201409101946_0010_m_000002_0:
org.apache.hadoop.security.AccessControlException:
org.apache.hadoop.security.AccessControlException: Permission denied: user=root,
access=EXECUTE, inode="job_201409101946_0010":hadoop:supergroup:rwx------
at sun.reflect.GeneratedConstructorAccessor7.newInstance(Unknown Source)
...

显然,user=root 不能访问用户 hadoop 拥有的目录。但问题是我正在以 myuser 身份运行该作业,我不确定为什么这里涉及 root。您知道导致此问题的原因吗?

最佳答案

首先,/user/myuser/应该是HDFS上的路径,而不是本地路径。然后,它需要存在,因此,如果不存在,请运行:

hadoop dfs -mkdir/user/myuser/ 然后
hadoop dfs -chown myuser:groopOfMyuser/user/myuser/ ,其中 groupOfMyusermyuser 所属的组。

检查它是否存在运行:hadoop dfs -ls/user/

然后,要将文件上传到 HDFS 上的输入目录,请使用以下命令:

hadoop dfs -copyFromLocal/local/path/input.txt/user/myuser/

请注意,输入和输出路径应该是目录(在 HDFS 上)而不是文件。因此,运行程序的正确命令是:

hadoop jar/usr/share/hadoop/hadoop-examples-1.2.1.jar wordcount/user/myuser/user/myuser/output

最后,检查 hadoop 目录 ($HADOOP_HOME) 是否由 myuserhadoop 或其他任何人所有,并将 jar 作为一个运行谁拥有它们,或者使用 chown 更改它们的所有权。

(假设您使用旧 API,但您也可以在新 API 中轻松找到等效命令。)

关于java - 尝试以 myuser 身份运行作业时权限被拒绝,但错误提示 root 没有足够的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777158/

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