我正在尝试获取一个hdfs位置并将其作为电子邮件附件提供给oozie电子邮件操作。我的 hdfs 位置只能通过 shell 操作找到。现在我如何传递我的 shell 操作的输出,这将是我的 oozie 电子邮件操作的 hdfs 路径。这可以使用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>
请参阅我的评论,但对于检查此问题的其他人,答案是:捕获外壳操作的输出
<capture-output/>
并将其作为电子邮件操作的参数传递
<attachment>${wf:actionData('shell_action')['path']}</attachment>
有关详细信息,请查看我评论中的链接。