我正在尝试在Oozie上运行一个Shell脚本。首先,我选择了shell脚本文件的路径,之后我添加了运行shell脚本文件的参数。当我尝试运行oozie worflow时,它会进入一个运行循环,在10秒后被杀死。
我还通过在HDFS中设置输出文件夹的路径来添加环境变量。当我运行它时,它再次遇到一个循环,在10秒后被杀死。我无法弄清楚如何设置路径。请帮忙。
答案 0 :(得分:0)
你的问题不明确, 但是我想,你正试图使用Oozie工作流运行Shell脚本,其中Shell脚本参数将从Oozie自己传递。
如果我的理解是正确的,你可以通过coordinator.properties/coordinator.xml/workflow.xml从Oozie传递Argument变量。
实施例: 假设您有一个shell脚本,每次执行到另一个dfs位置时都会执行distcp。
Shell脚本:
> hadoop dfs -rmr destination_location
> hadoop distcp hdfs://<source_dfs><source_dfs_location> hdfs://<destination_dfs><destination_dfs_location>
workflow.xml:
<action name="shellAction">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>oozie.launcher.mapred.job.queue.name</name>
<value>default</value>
</property>
</configuration>
<exec>shell_script.sh</exec>
<file>hdfs://<dfs:port>/<dfs_location/shell_script.sh></file>
<capture-output/>
</shell>
<ok to="end"/>
<error to="killAction"/>
</action>
<kill name="killAction">
<message>Shell Action Failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
注意:Shell操作可以在oozie_site.xml中定义 相信这些会对你有所帮助