0

尝试运行 Oozie 工作流,但不断收到以下错误消息:

org.apache.oozie.action.ActionExecutorException:FNF:无法在用户名@服务器名上执行 ssh-base.sh | 错误流:************************************************ ************************ 本机是xyz的财产....

(注意:我已经设置了无密码访问。如果我手动运行这些步骤,它可以工作,但是当我通过 Oozie 运行时它不会。换句话说,我可以作为用户 'oozie' 登录到机器,然后 ssh用户名@服务器名(不输入密码)然后运行“命令”。这有效,但 Oozie 工作流程不)

这是我的工作流.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>
4

1 回答 1

0

通过查看代码找出问题所在。FNF 代表“找不到文件”。似乎“ssh 操作”不处理用分号分隔的命令,例如:

cd /export/home/user/test/bin;./test.sh --arg 值

这是我所做的:

1)将命令更改为:

./test.sh --arg 值

2)将test.sh复制到用户的根目录下。

3) 将 cd /export/home/user/test/bin 添加到“test.sh”的开头

它现在正在工作!

于 2014-07-09T05:52:26.087 回答