Создать каталог в HDFS с помощью действия ssh в Oozie

Я должен создать каталог в HDFS с помощью действия SSH в Oozie. Мой пример рабочего процесса

<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>

Я получаю ошибку во время выполнения. Кто-нибудь может подсказать мне, какой момент я здесь упускаю?

1 ответ

Вы не можете создать каталог в hdfs с помощью команды *nix mkdir. Использование, которое вы показали в коде, попытается выполнить команду mkdir в локальной файловой системе, тогда как вы хотите создать каталог в HDFS.

Цитирование документации oozie @ http://oozie.apache.org/docs/3.3.0/DG_SshActionExtension.html; Говорится

Команда оболочки выполняется в домашнем каталоге указанного пользователя на удаленном хосте.

<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.

Другие вопросы по тегам