看看Cloudera的安装说明,我没有看到任何关于如何以普通用户身份运行作业的提及。
当我尝试运行一个示例工作时,这是我得到的:
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
一种解决方法是设置“/”的权限以允许所有用户写入。
我在网上看到的另一个解决scheme是设置一个属性mapreduce.jobtracker.staging.root.dir但我不确定在哪里设置: http : //getsatisfaction.com/cloudera/topics/unable_to_run_mapreduce_job_in_cdh3_cluster_permission_denied
我猜这是有一个标准的方式来处理(即不是所有运行hadoop作业的用户都有root权限,也不是所有的HDFS root权限)
编辑:仍然坚持这一点,但我转发问题Cloudera的邮件列表..希望有人在这里或这里将回复:)谢谢!
我能够得到这个工作与以下设置:
<configuration> <property> <name>mapreduce.jobtracker.staging.root.dir</name> <value>/user</value> </property> #... </configuration>
需要重新启动jobtracker服务(特别感谢Jeff在Hadoop邮件列表中帮助我追踪问题!)