我尝试使用以下操作代码在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秒才能完成
我的shellcript是/home/510600/HADOOP_ECO/CDH4/oozietest/test.sh
#!/bin/bash
rm -rf /home/510600/abc.log
有谁可以解释为什么oozie ssh动作需要很长时间才能运行?
答案 0 :(得分:2)
如果一切正常,除了从shell脚本向oozie webserver发送状态,我知道这个问题会卷曲。
远程计算机中应存在Linux实用程序卷曲。
因为oozie webserver在内部使用两个bash脚本ssh-base.sh和ssh-wapper.sh来执行远程机器中的命令。 ssh-base.sh脚本使用linux实用程序curl通过调用oozie webservice将状态发送回oozie服务器。
答案 1 :(得分:1)
有时可能会因配置身份验证问题而发生。
你是否尝试过没有oozie的脚本。完成需要多长时间?