Email 在所有Oozie作业完成后发送1封电子邮件
到目前为止,在hadoop集群中提交作业时,我一直在使用oozie电子邮件操作发送包含一些信息的电子邮件: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
<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监视功能。