我正在尝试通过Oozie工作流程运行ssh操作,
<action name="ssh-action">
<ssh xmlns="uri:oozie:ssh-action:0.1">
<host>Server name.net<host>
<command>echo</command>
</ssh>
<ok to="endjob"/>
<error to="endjob"/>
</action>
我将工作流存储到hdfs中,但是当尝试从oozie服务器连接服务器name.net时,我收到以下错误消息,请任何人请帮忙解决此问题,
错误: FNF:/var/tmp/oozie/oozie-dshm46789086433.dir/ssh/ssh.base.sh它看起来与oozie配置有关,任何人都可以帮忙解决这个问题。我的目标是在Oozie服务器上运行特定服务器上的脚本。
答案 0 :(得分:0)
尝试这样的事情:
<action name="shell-action">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>example.sh</exec>
</shell>
<ok to="end" />
<error to="kill" />
</action>
答案 1 :(得分:0)
尝试类似的事情-
第1步,如下所示创建workflow.xml
<?xml version="1.0"?>
<workflow-app xmlns="uri:oozie:workflow:0.3" name="sshAction">
<start to="MySSHAction"/>
<action name="MySSHAction">
<ssh xmlns="uri:oozie:ssh-action:0.1">
<host>${sshHost}</host>
<command>${shellScriptPath}</command>
<capture-output/>
</ssh>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]. </message>
</kill>
<end name="end"/>
</workflow-app>
第2步-配置job.properties
nameNode=hdfs://<namenode-machine>:8020
jobTracker=<resource-manager>:8050
queueName=default
shellScriptPath=/opt/example.sh
sshHost=oozie@localhost
注意-sshHost条目应类似于@,并确保从oozie @ oozie-host到@
应该具有无密钥访问权限第3步,编写示例example.sh脚本
#!/bin/bash
echo "Hello Oozie"