我尝试使用Java中的Oozie在Hadoop集群上开始工作。我对Oozie在Hadoop 1上的经验非常有限,现在我正努力在YARN上尝试同样的事情。
我给了一台不属于集群的机器,所以当我尝试开始工作时,我得到以下异常:
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>
这似乎是问题吗?我应该联系负责集群的人来解决这个问题吗?
是否会出现问题,因为我使用的YARN代码与Hadoop 1相同?应该改变什么?例如,我在workflow.xml中设置nameNode和jobTracker,jobTracker是否存在,因为现在有ResourceManager?我已经设置了ResourceManager的地址,但是将属性名称保留为jobTracker,这可能是错误吗?
也许我还应该提到使用Ambari ......
答案 0 :(得分:0)
您好请更新core-site.xml
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
和jobTracker地址是不会出现的Resourcemananger地址。一旦更新了core-site.xml文件,它就可以运行。
答案 1 :(得分:0)
原因: 导致此类错误的原因是 - 您将oozie服务器作为hadoop用户运行,但您将oozie定义为core-site.xml文件中的代理用户。
解决方案:
将oozie安装目录的所有权更改为oozie用户,并将oozie服务器作为oozie用户运行,问题将得到解决。