在我的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。
最佳答案
通过查看Oozie源代码,我终于设法找到了问题的答案,并将发布解决方案。
实际上Oozie无法识别通配符'*',您需要使用以下格式的USER1,USER2,USER3
传递完整的acl,而且似乎像错误OOZIE-228所示的那样USER1,USER2 GROUP1,GROUP2
格式也不起作用,因为Oozie会基于以下内容分割acl字符串,
字符。为了确保正确处理,oozie.job.acl
需要在job.properties中,而不是在工作流.xml中。
希望这可以为那些同样遇到麻烦的人节省时间。
关于hadoop - Oozie不会照顾acl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33232920/