[英]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.