簡體   English   中英

無法使用oozie shell操作運行shell腳本

[英]Unable to run shell script using oozie shell action

我為外殼操作創建了一個oozie工作流程。 下面是簡單的oozie shell動作。 我將Shell腳本放在工作流lib文件夾中。 該shell腳本正在執行以下操作:

1)從s3存儲桶中獲取加密的json並將其放入本地文件夾

2)解密json並將其放在一個hdfs位置。

3)對於aws連接和解密json,它使用一些密鑰,即pem和pub密鑰。

4)我將這些密鑰和shell腳本一起放在lib文件夾中。

<workflow-app xmlns="uri:oozie:workflow:0.5" name="LaborIngestion">
<start to='LaborIngestion'/>
    <action name='LaborIngestion'>
        <shell xmlns="uri:oozie:shell-action:0.1">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <exec>pullDataS3.sh</exec>
        </shell>

        <ok to="end"/>
        <error to="fail"/>
    </action>

    <kill name="fail">
        <message>LaborHrExtract workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
        </message>
    </kill>
    <end name="end"/>
</workflow-app>

我面臨的問題是,此工作流在7-8秒內以成功狀態結束,但是正在獲取任何文件。 通常,當我從命令提示符運行此腳本時,大約需要2-3分鍾。 我不確定是否正確放置了解密密鑰和連接密鑰。 如果這是將密鑰放入oozie的正確方法,請提出建議。

此外,我用下面的hadoop命令運行了一個簡單的腳本,並具有相同的工作流程,並且運行良好。

hadoop fs -mkdir / com / kapil / kumar

在您的工作流程之后

<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>pullDataS3.sh</exec>

Yow將需要提供HDFS路徑的shell腳本位置。

然后它應該工作。 像下面這樣

<file>/user/xxxxx/oozie/import/lib/pullDataS3.sh#pullDataS3.sh</file>

暫無
暫無

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

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