2016-01-27 75 views
1

我想获得一个hdfs位置并将其作为电子邮件附件提供给oozie电子邮件操作。我的hdfs位置只能使用shell操作找到。现在我该如何传递我的shell动作的输出,这将是我的oozie电子邮件动作的hdfs路径。这可以使用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检查我的更新答案,我附上一个工作示例,如何捕获一个shell动作输出并将其作为另一个动作节点的参数。 – kecso

回答

2

见我的意见,但对于其他人检查这个问题,答案是: 捕捉壳行动

<capture-output/> 

的输出,并把它作为对电子邮件操作

设置了一个param
<attachment>${wf:actionData('shell_action')['path']}</attachment> 

有关详情,请查看我评论中的链接。

相关问题