在我的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/

10-16 10:06