Email 在所有Oozie作业完成后发送1封电子邮件

Email 在所有Oozie作业完成后发送1封电子邮件,email,hadoop,oozie,Email,Hadoop,Oozie,到目前为止,在hadoop集群中提交作业时,我一直在使用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&g

到目前为止,在hadoop集群中提交作业时,我一直在使用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>
            <cc>[COMMA-SEPARATED-CC-ADDRESSES]</cc> <!-- cc is optional -->
            <subject>[SUBJECT]</subject>
            <body>[BODY]</body>
            <content_type>[CONTENT-TYPE]</content_type> <!-- content_type is optional -->
            <attachment>[COMMA-SEPARATED-HDFS-FILE-PATHS]</attachment> <!-- attachment is optional -->
        </email>
        <ok to="[NODE-NAME]"/>
        <error to="[NODE-NAME]"/>
    </action>
    ...
</workflow-app>

...
[以逗号分隔的地址]
[逗号分隔的CC地址]
[主题]
[正文]
[内容类型]
[逗号分隔的HDFS-FILE-path]
...
这用于在每次提交工作流后发送电子邮件。 假设我有560个工作正在运行,而不是收到560封电子邮件,我只希望收到一封电子邮件,其中包含特定工作日发生的事情的总结(成功、失败等)

我没有找到任何解决办法来实施这一点。 是否有人已经尝试过类似的方法,如果是的话,你能告诉我一些可能的方法来实现这个想法吗? 如果我想要达到的目标不够明确,请予以评论,
谢谢

我认为您需要使用Oozie fork/join Operator基本上,您需要的是企业调度器的Ops控制台。。。Oozie不是“企业级”的,但它有一个粗糙的UI、粗糙的命令行界面和RESTAPI。如果出于某种原因坚持接收自动电子邮件,则在边缘节点上使用简单的CRON每日作业=>通过简单的
oozie
CLI命令转储最后600次工作流执行,通过
xmail
以电子邮件附件的形式发送。对于自定义筛选和格式化,请使用Python来调用REST API、解析JSON结果、过滤/重新格式化并通过邮件发送。换句话说,不要在Oozie工作流中使用自定义操作来获取Oozie中发生的事情的全局视图——从外部使用Oozie监视功能。