我写了一个Oozie工作流,运行一个BASH shell脚本来执行一些Hive查询并对结果进行一些操作。脚本可以运行,但在访问某些HDFS数据时会抛出权限错误。提交Oozie工作流的用户有权限,但脚本正在以yarn用户身份运行。
是否可能使Oozie将脚本作为提交工作流的用户执行?Hive和Java操作都作为提交的用户执行,只有shell行为不同。
以下是我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。