0

我必须在 Oozie 中使用 ssh 操作在 HDFS 中创建一个目录。我的示例工作流程是

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
    <action name="testjob">
        <ssh>
            <host>name@host<host>
            <command>mkdir</command>
            <args>hdfs://host/user/xyz/</args>
        </ssh>
        <ok to="end"/>
        <error to="fail"/>
    </action>
</workflow-app>

我在执行过程中遇到错误。有人可以指导我在这里缺少什么吗?

4

1 回答 1

1

您不能使用 *nix mkdir 命令在 hdfs 中创建目录。您在代码中显示的用法将尝试在本地文件系统上执行 mkdir 命令,而您想在 HDFS 中创建一个目录。

引用 oozie 文档 @ http://oozie.apache.org/docs/3.3.0/DG_SshActionExtension.html;它指出

shell 命令在远程主机中指定用户的主目录中执行。

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
<action name="testjob">
    <ssh>
        <host>name@host<host>
        <command>/usr/bin/hadoop</command>
        <args>dfs</args>
        <args>-mkdir</args>
        <args>NAME_OF_THE_DIRECTORY_YOU_WANT_TO_CREATE</arg>
    </ssh>
    <ok to="end"/>
    <error to="fail"/>
</action>

上面的代码取决于你的 hadoop 二进制文件的路径。

于 2013-01-09T20:20:55.663 回答