2016-01-27 2 views
1

Я пытаюсь получить местоположение hdfs и предоставить его как приложение электронной почты для работы с e-mail oozie. Мое местоположение hdfs можно найти только с помощью действия оболочки. Теперь, как я могу передать результат действия моей оболочки, что будет hdfs-пути к моему действию электронной почты oozie. Может ли это быть достигнуто с помощью oozie?Приложение для отправки электронной почты Oozie

<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.1"> 
    ... 
    <action name="[NODE-NAME]"> 
    <email xmlns="uri:oozie:email-action:0.2"> 
     <to>[COMMA-SEPARATED-TO-ADDRESSES]</to> 
     <subject>[SUBJECT]</subject> 
     <body>[BODY]</body> 
     <content_type>[CONTENT-TYPE]</content_type> 
     **<attachment>[COMMA-SEPARATED-HDFS-FILE-PATHS]</attachment>** 
    </email> 
    <ok to="[NODE-NAME]"/> 
    <error to="[NODE-NAME]"/> 
    </action> 
    ... 
</workflow-app> 
+0

или я могу отправить файл hdfs с помощью команды почты bash, не копируя ее на локальный? – Neethu

+0

Я недавно ответил на вопрос, должен сделать то же самое. http://stackoverflow.com/questions/34943757/submit-pig-job-from-oozie/34971902#34971902 Проверьте мое обновление ответа, где я приложил рабочий пример, как захватить вывод действия оболочки и передать его как параметр другого узла действия. – kecso

ответ

2

Смотрите мой комментарий, но и для других проверяющих этот вопрос, ответ: Захват выход действия оболочки

<capture-output/> 

и передать его в качестве параметров для действия электронной почты

<attachment>${wf:actionData('shell_action')['path']}</attachment> 

Подробнее см. Ссылку в моем комментарии.