我编写了一个 Oozie 工作流程,它运行 BASH shell 脚本来执行一些配置单元查询并对结果执行一些操作。该脚本运行但在访问某些 HDFS 数据时抛出权限错误。提交 Oozie 工作流的用户具有权限,但脚本以纱线用户身份运行。
是否可以让 Oozie 以提交工作流的用户身份执行脚本? Hive 和 Java 操作都以提交的用户身份执行,只是 shell 的行为不同。
这是我的 Oozie 操作的粗略轮廓
<action name="start_action"
retry-max="12"
retry-interval="600">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>${WorkflowRoot}/hive-site.xml</job-xml>
<exec>script.sh</exec>
<file>${WorkflowRoot}/script.sh</file>
<capture-output />
</shell>
<ok to="next_action"/>
<error to="send_email"/>
</action>
我正在运行 Oozie 4.1.0 和 HDP 2.1。
使用 Simple Security 配置的所有集群都会出现此问题。您可以选择覆盖默认配置。在 shell 脚本的开头包含以下语句将解决此问题。
export HADOOP_USER_NAME=<Name of submitted user>;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)