Bla*_*ake 7 shell hadoop oozie
我编写了一个Oozie工作流,它运行BASH shell脚本来执行一些配置单元查询并对结果执行一些操作.该脚本运行但在访问某些HDFS数据时会引发权限错误.提交Oozie工作流的用户具有权限,但脚本作为yarn用户运行.
是否可以让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>
Run Code Online (Sandbox Code Playgroud)
我正在运行Oozie 4.1.0和HDP 2.1.
使用 Simple Security 配置的所有集群都会出现此问题。您可以选择覆盖默认配置。在 shell 脚本的开头包含以下语句将解决此问题。
export HADOOP_USER_NAME=<Name of submitted user>;
Run Code Online (Sandbox Code Playgroud)