无法使用oozie shell action

时间:2017-05-17 18:24:11

标签: json shell encryption amazon-s3 oozie

我为shell动作创建了一个oozie工作流程。下面是简单的oozie shell动作。我将Shell脚本放在工作流lib文件夹中。这个shell脚本正在做以下事情:

  

1)从s3存储桶中获取加密的json并将它们放入本地   夹

     

2)解密json并将其放在一个hdfs位置。

     

3)对于aws连接和解密json,它使用一些键,即   pem和pub keys。

     

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

1 个答案:

答案 0 :(得分:0)

之后的工作流程中
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>pullDataS3.sh</exec>

您需要提供shell脚本位置的HDFS路径。

然后它应该工作。 像下面的东西

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