2

次のアクション コード Passwordless ssh was configured を使用して、oozie で 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>

上記のコードで発生した問題は、2 行のシェル スクリプトを使用しても oozie ssh アクションの完了に時間がかかることですが、他のアクションは非常に高速に実行されます。

上記の 2 つのアクションでは、sshaction の完了に 12 分かかり、WordCount のアクションの完了にかかった時間はわずか 15 秒でした

私のシェルスクリプトは /home/510600/HADOOP_ECO/CDH4/oozietest/test.sh です

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

oozie ssh アクションの実行に時間がかかる理由を誰か説明できますか?

4

2 に答える 2

2

シェル スクリプトから Oozie Web サーバーにステータスを送信する以外はすべて正常に動作する場合、問題は curl であると思います。

Linux ユーティリティ curl がリモート マシンに存在する必要があります。

Oozie Web サーバーは内部で 2 つの 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 に答える