无法在kerberized集群上提交oozie作业

时间:2015-08-27 12:28:47

标签: hadoop kerberos oozie

我正在尝试将oozie作业提交到kerberized群集。 以下是命令:

oozie job -run -DjobTracker=jobtracker-host:8032 -DnameNode=hdfs://namenode-host:8020 -DexamplesRoot=oozie.TestOozieCli.1440674219900/examples -config /tmp/oozie.TestOozieCli.1440674219900/examples/apps/java-main/job_config.xml

抛出以下错误:

Error: IO_ERROR : java.io.IOException: Error while connecting Oozie server. No of retries = 1. Exception = Could not authenticate, Authentication failed, status: 403, message: Forbidden.

我为什么会遇到这个错误?

2 个答案:

答案 0 :(得分:0)

您是否检查了您的Core-site.xml hadoop.proxyuser.oozie.hosts &的配置集是什么?的 hadoop.proxyuser.oozie.groups

请尝试设置

  <property>
    <name>hadoop.proxyuser.oozie.hosts</name>
    <value>*</value>
  </property>
    <property>
    <name>hadoop.proxyuser.oozie.groups</name>
    <value>*</value>
  </property>

&#34; 明星&#34;确认访问所有用户以在oozie中提交作业

更改core-site.xml后,需要重新启动hadoop。

<强>编辑:

正如您提到的对安全性的关注,在这种情况下,您可以提及Oozie将收到作业请求的选择性用户名,而不是提及&#34; 明星&# 34;你可以提到用户名,比如&#34; oozie,hdfs,hbase,user&#34;在同一财产上,这些也可以。

答案 1 :(得分:0)

Oozie命令行使用REST API连接到Oozie服务器。如果oozie服务器设置为使用Kerberos,则REST API将使用HTTP SPNEGO进行身份验证。

在您的情况下,似乎http authen失败了。你应该在oozie命令之前先运行一个kinit,例如:

kinit -kt {location of your keytab file} {principal}

或者只是kinit并在提示时输入密码:

kinit