FNF:无法执行ssh-base.sh

时间:2014-07-01 15:40:53

标签: hadoop ssh oozie oozie-coordinator

尝试运行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>

1 个答案:

答案 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;

的开头

它现在正在工作!