繁体   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