微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oozie shell动作未作为提交用户运行

我编写了一个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.

在使用简单安全性配置的所有群集中都会发生此问题.您可以选择覆盖认配置.在shell脚本的开头包含以下语句将解决此问题.
export HADOOP_USER_NAME=<Name of submitted user>;

原文地址:https://www.jb51.cc/bash/384312.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐