尝试运行oozie工作流,但始终收到以下错误消息:
org.apache.oozie.action.actionExecuteException:fnf:无法在上执行ssh-base.shusername@servername |错误流:*******************************************************************************此计算机是xyz的属性。。。。
(注意:我已设置passpharase less访问。如果我手动运行的步骤,它的工作,但当我运行通过oozie它没有。换句话说,我可以作为用户“oozie”登录到机器,然后使用sshusername@servername (不输入密码)&然后运行“command”。这是可行的,但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>
1条答案
按热度按时间vmjh9lq91#
通过查看代码找出了问题所在。fnf代表“找不到文件”。“ssh action”似乎不处理用分号分隔的命令,例如:
cd/export/home/user/test/bin/test.sh—arg值
以下是我所做的:
1) 将命令更改为:
./test.sh—arg值
2) 已将test.sh复制到用户的根目录。
3) 在“test.sh”的开头添加了cd/export/home/user/test/bin
现在起作用了!