Oozie 不关心 acl
Oozie doesn't take care of acl
在我的 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 return 一个错误 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 源代码找到了我的问题的答案,并将 post 解决方案。
事实上 Oozie 不识别通配符 '*',您需要使用以下格式 USER1,USER2,USER3
传递完整的 acl,而且似乎错误中显示的格式 USER1,USER2 GROUP1,GROUP2
OOZIE-228 不起作用,因为 Oozie 根据 ,
字符拆分 acl 字符串。为了确保它得到正确处理,oozie.job.acl
需要在 job.properties 中而不是在 workflow.xml.
中
希望这能为和我有同样问题的人节省时间。
为此,要执行 kill/suspend 等任何操作,我们需要为我们的用户 ID 生成身份验证令牌。
首先,我们需要使用以下命令从文件中清除现有令牌,然后对给定的工作流 ID 执行 suspend/kill 等操作:
rm .oozie-auth-token
来自 Apache Oozie 文档:
Once authentication is performed successfully the received
authentication token is cached in the user home directory in the
.oozie-auth-token file with owner-only permissions. Subsequent
requests reuse the cached token while valid.
有关更多详细信息,请参阅 Apache Oozie 文档的 link(请参阅身份验证部分):Official Documentation
在我的 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 return 一个错误 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 源代码找到了我的问题的答案,并将 post 解决方案。
事实上 Oozie 不识别通配符 '*',您需要使用以下格式 USER1,USER2,USER3
传递完整的 acl,而且似乎错误中显示的格式 USER1,USER2 GROUP1,GROUP2
OOZIE-228 不起作用,因为 Oozie 根据 ,
字符拆分 acl 字符串。为了确保它得到正确处理,oozie.job.acl
需要在 job.properties 中而不是在 workflow.xml.
希望这能为和我有同样问题的人节省时间。
为此,要执行 kill/suspend 等任何操作,我们需要为我们的用户 ID 生成身份验证令牌。 首先,我们需要使用以下命令从文件中清除现有令牌,然后对给定的工作流 ID 执行 suspend/kill 等操作:
rm .oozie-auth-token
来自 Apache Oozie 文档:
Once authentication is performed successfully the received authentication token is cached in the user home directory in the .oozie-auth-token file with owner-only permissions. Subsequent requests reuse the cached token while valid.
有关更多详细信息,请参阅 Apache Oozie 文档的 link(请参阅身份验证部分):Official Documentation