在我的hadoop cluser上,我设计了一个oozie工作流,具有以下属性。
<global>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>myQueue</value>
</property>
<property>
<name>oozie.launcher.mapred.job.queue.name</name>
<value>oozie-launcher</value>
</property>
<property>
<name>tez.queue.name</name>
<value>myQueue</value>
</property>
<property>
<name>oozie.job.acl</name>
<value>*</value>
</property>
<property>
<name>mapreduce.job.acl-modify-job</name>
<value>*</value>
</property>
</configuration>
我关心的是财产 oozie.job.acl
wich应该提供一个acl,允许每个人都终止我的工作流。
但是当我试图用一个不同于提交它的用户的用户来终止它时,oozie返回一个错误e0508
oozie job -oozie http://localhost:11000/oozie -kill 0000000-151020102420689-oozie-oozi-W
Error: E0508 : E0508: User [user] not authorized for WF job [0000000-151020102420689-oozie-oozi-W]
我的集群配置中是否遗漏了什么?我正在使用oozie 4.1.0。
2条答案
按热度按时间lhcgjxsq1#
为此,要执行诸如kill/suspend等任何操作,我们需要为用户id生成身份验证令牌。首先,我们需要使用以下命令清除文件中的现有令牌,然后对给定的工作流id执行suspend/kill等操作:
来自apache oozie文档:
成功执行身份验证后,收到的身份验证令牌将缓存在.oozie auth token文件的用户主目录中,并具有所有者权限。后续请求在有效时重用缓存的令牌。
有关更多详细信息,请访问apacheoozie文档的链接(请参阅身份验证部分):官方文档
5m1hhzi42#
我终于设法找到了我的问题的答案,通过看看oozie源代码,并将张贴解决方案。
实际上oozie不识别通配符'*',您需要用以下格式传递完整的acl
USER1,USER2,USER3
而且似乎USER1,USER2 GROUP1,GROUP2
就像在bug oozie-228中出现的那样,oozie无法工作,因为oozie基于,
性格。为了确保处理得当oozie.job.acl
必须在job.properties中,而不是在workflow.xml中。希望这将节省时间的人有同样的麻烦有我。