2

我尝试使用以下操作代码在 oozie 中运行 ssh 操作工作流作业 配置了无密码 ssh:

   <action name="sshaction">
        <ssh xmlns="uri:oozie:ssh-action:0.1">
            <host>127.0.0.1</host>
            <command>/bin/bash</command>
         <args>/home/510600/HADOOP_ECO/CDH4/oozietest/test.sh</args>
            <args>first</args>
            <capture-output/> 
        </ssh>
        <ok to="WordCount" />
        <error to="fail" />
    </action>

    <action name="WordCount">
        <java>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <prepare>
                <delete path="${nameNode}/user/510600/output/" />
            </prepare>
            <main-class>${parse_mainClass}</main-class>
            <arg>${inputDir}</arg>
            <arg>${parse_Output}</arg>
        </java>
        <ok to="end" />
        <error to="fail" />
    </action>

我在上面的代码中遇到的问题是 oozie ssh 操作即使使用 2 行 shell 脚本也需要很长时间才能完成,但是其他操作运行得非常快。

对于上述 2 个动作,sshaction 需要 12 分钟才能完成,而 WordCount 动作只需 15 秒即可完成

我的 shellscript 是 /home/510600/HADOOP_ECO/CDH4/oozietest/test.sh

#!/bin/bash
rm -rf /home/510600/abc.log

谁能解释为什么 oozie ssh 操作需要很长时间才能运行?

4

2 回答 2

2

如果除了从 shell 脚本向 oozie 网络服务器发送状态外一切正常,我认为问题将是 curl。

Linux 实用程序 curl 应该存在于远程计算机中。

因为 oozie webserver 在内部使用两个 bash 脚本 ssh-base.sh 和 ssh-wapper.sh 来执行远程机器上的命令。ssh-base.sh 脚本使用 linux 实用程序 curl 通过调用 oozie webservice 将状态发送回 oozie 服务器。

于 2013-07-05T05:52:55.953 回答
1

有时它可能由于配置或身份验证问题而发生。

您是否尝试在没有 oozie 的情况下执行脚本。完成需要多长时间?

于 2013-07-05T05:11:36.997 回答