【问题标题】:Can't run shell script via oozie无法通过 oozie 运行 shell 脚本
【发布时间】:2019-08-01 14:27:11
【问题描述】:

我正在尝试运行一个 shell 脚本,它只是通过 mkdir 命令通过 oozie 工作流创建一个目录。

我正在使用 HDP 2.6.5 | Oozie 4.2.0

错误信息总是:

java.io.IOException:无法运行程序“test.sh”(在目录中 “/hadoop/yarn/local/usercache/whorcani/appcache/application_1547225966242_3390/container_e111_1547225966242_3390_01_000002”): error=2, 没有这样的文件或目录

【问题讨论】:

标签: shell action oozie


【解决方案1】:

如果您至少不发布您的 Oozie XML 以进行相关操作,那么很难回答您的问题。我的猜测是你没有使用<file> 标签。

来自 Mohammad Kamrul Islam 和 Aravind Srinivasan 的 Apache Oozie

因为 shell 命令在任何 Hadoop 节点上运行,您需要了解这些节点上二进制文件的路径。可执行文件必须在节点上可用,或者由操作通过分布式缓存使用<file> 标记复制。对于节点上未通过缓存复制的二进制文件,如果始终使用绝对路径,调试起来可能更安全、更容易。

这是一个简单的 shell 动作示例:

    <action name="shell_action">
        <shell xmlns = "uri:oozie:shell-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <exec>sh</exec>
            <argument>my_shell_script.sh</argument>
            <file>/full/hdfs/path/to/your/script/my_shell_script.sh</file>
        </shell>
        <ok to="action2"/>
        <error to="fail"/>
    </action>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2019-04-05
    • 2015-03-19
    • 2011-07-27
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多