Oozie在shell动作中执行hadoop命令作为yarn

时间:2015-09-03 05:18:25

标签: oozie

环境:Hortonworks Sandbox HDP 2.2.4

问题:无法以root用户身份运行shell脚本中的hadoop命令。 oozie作业以root用户身份触发,但是当执行hadoop fs或任何mapreduce命令时,它将作为yarn用户运行。作为yarn,无法访问某些文件系统,因此shell脚本无法执行。让我知道我需要做些什么更改,让它以root用户身份运行hadoop命令。

3 个答案:

答案 0 :(得分:1)

当我们在oozie中调用shell操作时,将Yarn放在适当位置是一种预期的行为。纱线用户只能运行shell操作。我们可以做的一件事是在文件系统上授予对Yarn的访问权限。

答案 1 :(得分:0)

这更像是一个shell脚本问题,而不是一个Oozie问题。从理论上讲,Oozie的工作是作为提交工作的用户运行的。在kerberos' env,用户是使用keytab /密码登录的人。

一旦作业在Hadoop集群上运行,为了更改命令的所有权,您可以使用" sudo"在你的shell脚本中。在您的情况下,您可能还需要确保用户" yarn"允许sudo到你想要执行的命令。

答案 2 :(得分:0)

将以下属性添加到工作流程:

HADOOP_USER_NAME = $ {WF:用户()}