oozie不负责acl

8ehkhllq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(344)

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

lhcgjxsq

lhcgjxsq1#

为此,要执行诸如kill/suspend等任何操作,我们需要为用户id生成身份验证令牌。首先,我们需要使用以下命令清除文件中的现有令牌,然后对给定的工作流id执行suspend/kill等操作:

rm .oozie-auth-token

来自apache oozie文档:
成功执行身份验证后,收到的身份验证令牌将缓存在.oozie auth token文件的用户主目录中,并具有所有者权限。后续请求在有效时重用缓存的令牌。
有关更多详细信息,请访问apacheoozie文档的链接(请参阅身份验证部分):官方文档

5m1hhzi4

5m1hhzi42#

我终于设法找到了我的问题的答案,通过看看oozie源代码,并将张贴解决方案。
实际上oozie不识别通配符'*',您需要用以下格式传递完整的acl USER1,USER2,USER3 而且似乎 USER1,USER2 GROUP1,GROUP2 就像在bug oozie-228中出现的那样,oozie无法工作,因为oozie基于 , 性格。为了确保处理得当 oozie.job.acl 必须在job.properties中,而不是在workflow.xml中。
希望这将节省时间的人有同样的麻烦有我。

相关问题