在我的 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
属性,它应该提供一个允许每个人终止我的工作流程的 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。
最佳答案
我终于通过查看 Oozie 源代码找到了我的问题的答案,并将发布解决方案。
事实上 Oozie 不识别通配符 '*',您需要传递具有以下格式的完整 acl USER1,USER2,USER3
似乎格式 USER1, USER2 GROUP1,GROUP2
就像错误中出现的一样 OOZIE-228不起作用,因为 Oozie 根据 ,
字符拆分 acl 字符串。为了确保它得到正确处理,oozie.job.acl
需要位于 job.properties 而不是 workflow.xml 中。
希望这能为和我有同样问题的人节省时间。
关于hadoop - Oozie 不关心 acl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33232920/