【发布时间】:2013-04-20 11:14:40
【问题描述】:
我在我的 hadoop 集群中启用了权限管理,但是我在使用 pig 发送作业时遇到了问题。这是场景:
1 - 我有 hadoop/hadoop 用户
2 - 我有运行 PIG 脚本的 myuserapp/myuserapp 用户。
3 - 我们将路径 /myapp 设置为由 myuserapp 拥有
4 - 我们将 pig.temp.dir 设置为 /myapp/pig/tmp
但是当我们 pig 尝试运行作业时,我们得到了以下错误:
job_201303221059_0009 all_actions,filtered,raw_data DISTINCT Message: Job failed! Error - Job initialization failed: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=realtime, access=EXECUTE, inode="system":hadoop:supergroup:rwx------
Hadoop jobtracker 需要此权限才能启动它的服务器。
我的 hadoop 策略如下所示:
<property>
<name>security.client.datanode.protocol.acl</name>
<value>hadoop,myuserapp supergroup,myuserapp</value>
</property>
<property>
<name>security.inter.tracker.protocol.acl</name>
<value>hadoop,myuserapp supergroup,myuserapp</value>
</property>
<property>
<name>security.job.submission.protocol.acl</name>
<value>hadoop,myuserapp supergroup,myuserapp</value>
<property>
我的 hdfs-site.xml:
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>755</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value>hadoop,supergroup</value>
</property>
我的核心网站:
...
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
...
最后是我的 mapred-site.xml
...
<property>
<name>mapred.local.dir</name>
<value>/tmp/mapred</value>
</property>
<property>
<name>mapreduce.jobtracker.jobhistory.location</name>
<value>/opt/logs/hadoop/history</value>
</property>
是否缺少配置?如何处理多个用户在受限 HDFS 集群中运行作业?
【问题讨论】:
标签: hadoop mapreduce posix hdfs