以普通用户身份在 Cloudera 3 上运行 Hadoop 作业?

以普通用户身份在 Cloudera 3 上运行 Hadoop 作业?

查看 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

一个解决方案是设置“/”的权限以允许所有用户写入。

我在网上看到的另一种解决方案是设置一个属性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 的邮件列表...希望那里或这里的某个人会回复:) 谢谢!

答案1

我能够使用以下设置来实现这个功能:

<configuration>
    <property>
        <name>mapreduce.jobtracker.staging.root.dir</name>
        <value>/user</value>
    </property>

    #...

</configuration>

还需要重新启动 jobtracker 服务(特别感谢 Hadoop 邮件列表上的 Jeff 帮助我追踪问题!)

相关内容