2

我正在尝试使用 Cloudera oozie 进行简单的 ssh 工作。

工作属性

nameNode=hdfs://localhost:8020
jobTracker=localhost:8032
queueName=default
examplesRoot=examples

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/ssh

工作流.xml

<workflow-app xmlns="uri:oozie:workflow:0.2" name="ssh-wf">
    <start to="ssh"/>

    <action name="ssh">
        <ssh xmlns="uri:oozie:ssh-action:0.1">
            <host>localhost</host>
            <command>date</command>
        </ssh>
        <ok to="end"/>
        <error to="fail"/>
    </action>

    <kill name="fail">
        <message>SSH action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>

    <end name="end"/>
</workflow-app>

当尝试使用以下命令运行作业时:

oozie job -oozie http://localhost:11000/oozie -config examples/apps/ssh/job.properties -run

该作业因以下错误而暂停:

org.apache.oozie.action.ActionExecutorException: AUTH_FAILED: Not able to perform operation [ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 cloudera@localhost  mkdir -p oozie-oozi/0000003-170304124323783-oozie-oozi-W/ssh--ssh/ ] | ErrorStream: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

可能的问题是什么?为 localhost 启用了无密码登录。

4

1 回答 1

1

Oozie 服务器将以oozie用户身份运行 SSH 以运行 ssh。远程的目标用户将根据配置,即cloudera.

oozie为用户启用无密码登录。为用户创建 SSH 密钥oozie并将其公钥复制到authorized_keys用户cloudera

于 2017-03-05T14:05:18.130 回答