我试图从Java使用Oozie在Hadoop集群上启动一项作业。我在Hadoop 1上使用Oozie的经验非常有限,现在我很难在YARN上尝试同样的事情。Oozie on YARN - oozie不允许冒充hadoop
我因为不属于群集,所以当我想开始我的工作,我得到下面的异常机器:
E0501 : E0501: Could not perform authorization operation, User: oozie is not allowed to impersonate hadoop
这是为什么和怎么办?
我读了一些有关这个需要设置
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>users</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>master</value>
</property>
它看起来,这是问题的核心站点属性?我应该联系负责群集的人员解决这个问题吗?
可能会有问题,因为我使用的是与Hadoop 1相同的YARN代码吗?应该改变什么?例如,我在workflow.xml中设置nameNode和jobTracker,如果jobTracker存在,因为现在有ResourceManager了?我已经设置了ResourceManager的地址,但留下了作为jobTracker的属性名称,这可能是错误吗?
也许我还要提到的是Ambari使用...
感谢您的回答,但不会让任何用户使用Oozie提交工作流程?我只是Oozie用户中的一员,我不认为集群管理员会允许这种设置......在从Java代码运行工作流程时,有没有一种方法可以模拟为不同的用户? – Marko
您正尝试以“hadoop”用户提交作业!那么你可以将用户“hadoop”添加到用户“oozie”。这里“hadoop”是OOZIE_SERVER_HOSTNAME,所以我们必须添加给用户。 – karthik
所以你说在配置中应该是 hadoop.proxyuser.hadoop.hosts * ? 是否有可能从java代码执行-doAs?要指定哪些属性? –
Marko