0

我正在尝试使用 Java 中的 Oozie 在 Hadoop 集群上开始工作。我在 Hadoop 1 上使用 Oozie 的经验非常有限,现在我正在努力在 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,既然现在有ResourceManager,jobTracker应该存在吗?我设置了ResourceManager的地址,但是属性名却是jobTracker,会不会是错误?

也许我还应该提到使用了 Ambari ......

4

2 回答 2

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 文件,它将起作用。

于 2015-06-19T07:22:06.570 回答
0

原因:此类错误的原因是 - 您以 hadoop 用户身份运行 oozie 服务器,但您在 core-site.xml 文件中将 oozie 定义为代理用户。

解决方案:

将oozie安装目录的所有权更改为oozie用户,并以oozie用户运行oozie服务器,问题就解决了。

于 2016-10-17T04:43:49.997 回答