【发布时间】:2016-05-06 12:31:21
【问题描述】:
我收到以下权限错误,我不确定 hadoop 为何尝试写入此特定文件夹:
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 2 100000
Number of Maps = 2
Samples per Map = 100000
Wrote input for Map #0
Wrote input for Map #1
Starting Job
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=myuser, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
知道它为什么要写入我的 hdfs 的根目录吗?
更新: 暂时将 hdfs root (/) 设置为 777 权限后,我看到正在写入一个“/tmp”文件夹。我想一种选择是只创建一个具有开放权限的“/tmp”文件夹供所有人写入,但从安全角度来看,如果将其写入用户文件夹(即/user/myuser/tmp)会很好
【问题讨论】:
-
你是用“myuser”启动hadoop的吗?
-
不,我用的是Cloudera,所以hadoop是作为服务运行的,大概是root
-
尝试使用 hadoop fs -chmod 将权限设置为 / 到 777,看看它写了什么。
-
@orangeoctopus - 它正在写入 /tmp/hadoop-mapred - 是否有更改此位置的设置?
-
@spike - 如果非 root 用户可以从他们自己的帐户运行 hadoop,我会更喜欢它。我注意到它正在将 /tmp 写入 hdfs,因此试图弄清楚为什么会发生这种情况,所以如果您对此有任何想法,请告诉我。谢谢
标签: permissions hadoop