在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。
发布于 2015-10-26 09:48:03
通过查看Oozie源代码,我终于找到了问题的答案,并将发布解决方案。
实际上,Oozie不识别通配符“*”,您需要以以下格式传递完整的USER1,USER2,USER3格式,而且在bug 奥兹-228中显示的格式USER1,USER2 GROUP1,GROUP2似乎无法工作,因为Oozie根据,字符拆分了acl字符串。为了确保正确处理它,oozie.job.acl需要在job.properties中而不是在workflow.xml中。
希望这能节省时间给有同样麻烦的人也有我。
发布于 2019-02-13 12:12:40
为此,要执行诸如杀死/挂起等任何操作,我们需要为用户id生成身份验证令牌。首先,我们需要使用下面的命令从文件中清除现有的令牌,然后对给定的工作流id执行挂起/杀死等操作:
rm .oozie-auth-token来自Apache Oozie文档:
一旦成功地执行了身份验证,接收到的身份验证令牌将被缓存在..oozie auth- token文件中的用户主目录中,其中包含只有所有者的权限。随后的请求在有效时重用缓存的令牌。
有关详细信息,请参阅Apache文档的链接(请参阅身份验证部分):正式文件
https://stackoverflow.com/questions/33232920
复制相似问题