尝试运行Oozie工作流程,但不断收到以下错误消息:
org.apache.oozie.action.ActionExecutorException:FNF:无法在用户名@ servername上执行ssh-base.sh ErrorStream: ********************************************* ************************ 这台机器是xyz ....
的财产(注意:我已经设置了无法使用passpharase的访问权限。如果我手动运行这些步骤,它会起作用,但是当我通过Oozie运行它时它不会。换句话说,我可以登录到机器用户' oozie',然后ssh用户名@ servername(不输入密码)&然后运行'命令'。这有效,但Oozie工作流程没有输入
这是我的workflow.xml
<workflow-app name="my app" xmlns="uri:oozie:workflow:0.2">
<start to="sshAction"/>
<action name="sshAction">
<ssh xmlns="uri:oozie:ssh-action:0.1">
<host>username@servername</host>
<command>cd /export/home/user/test/bin;./test.sh --arg value</command>
<capture-output/>
</ssh>
<ok to="sendEmail"/>
<error to="sendEmail" />
</action>
<action name="sendEmail">
<email xmlns="uri:oozie:email-action:0.1">
<to>username@xyz.com</to>
<subject>Output of workflow ${wf:id()}</subject>
<body>Status of the file move: ${wf:actionData('sshAction')['STATUS']}</body>
</email>
<ok to="end"/>
<error to="end"/>
</action>
<end name="end"/>
</workflow-app>
答案 0 :(得分:0)
通过查看代码找出问题所在。 FNF代表&#39;文件未找到&#39;。它似乎是'ssh动作&#39;不会处理用分号分隔的命令,例如:
cd /export/home/user/test/bin;./test.sh --arg value
这就是我的所作所为:
1)将命令更改为:
./ test.sh --arg value
2)将test.sh复制到用户的根目录。
3)将cd / export / home / user / test / bin添加到&#39; test.sh&#39;
的开头它现在正在工作!