【问题标题】:How do I set path in oozie workflows?如何在 oozie 工作流程中设置路径?
【发布时间】:2015-07-30 21:24:09
【问题描述】:

我正在尝试在 Oozie 上运行 Shell 脚本。首先,我选择了 shell 脚本文件的路径,然后添加了运行 shell 脚本文件的参数。当我尝试运行 oozie worflow 时,它会进入一个运行循环,该循环会在 10 秒后被终止。

我还通过在 HDFS 中设置输出文件夹的路径来添加环境变量。当我运行它时,它再次进入一个循环,在 10 秒后被杀死。我无法弄清楚如何设置路径。请帮忙。

【问题讨论】:

  • 也许您可以编辑您的问题以包含您运行的实际命令,而不是简单地描述它们。您也可以从任何日志中发布相关的 sn-ps。请参阅 stackoverflow.com/help/how-to-ask

标签: shell hadoop workflow hdfs oozie


【解决方案1】:

你的问题不清楚, 但我猜,您正在尝试使用 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 中定义 相信这些会对你有所帮助

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多