我正在尝试将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.
我为什么会遇到这个错误?
答案 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