簡體   English   中英

無法通過oozie運行shell腳本

[英]Can't run shell script via oozie

我正在嘗試運行僅通過oozie工作流程通過mkdir命令創建目錄的Shell腳本。

我正在使用HDP 2.6.5 | Oozie 4.2.0

錯誤消息始終為:

java.io.IOException:無法運行程序“ test.sh”(在目錄“ / hadoop / yarn / local / usercache / whorchani / appcache / application_1547225966242_3390 / container_e111_1547225966242_3390_01_000002”中):錯誤= 2,沒有此類文件或目錄

如果您至少沒有發布有關相關操作的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM