我们计划创建oozie job,它运行sqoop命令,每小时将数据从sqlserver导入hdfs。但我们面临的挑战是,如果作业在这段时间内失败,如何获得警报,以及sqoop如何检查哪些数据导入成功,哪些数据仍然挂起。在sqoop导入期间是否有任何流程来维护事务和重试机制。我们也对他们的失败保持警惕。
imzjd6km1#
您可以将oozie的工作流配置为在失败时发送电子邮件。您可以通过将错误标记从任何操作重定向到发送电子邮件操作来实现这一点。电子邮件配置的示例如下。
<action name="send-email"> <email xmlns="uri:oozie:email-action:0.1"> <to>${emailToAddress}</to> <subject>Failed to import table.</subject> <body>The following import has failed. failed the workflow that was trying to perform job --exec import-${tableName}-${environment}-${format}-${db} --verbose ID= ${wf:id()} NAME= ${wf:name()} APP PATH= ${wf:appPath()} USER= ${wf:user()} GROUP= ${wf:group()} NAMENODE= ${nameNode} JOBTRACKER = ${jobTracker} QUEUE = ${queueName} START DATE = ${start} error message[${wf:errorMessage(wf:lastErrorNode())}]</body> </email> <ok to="fail-job"/> <error to="fail-email"/> </action>
请注意,电子邮件地址可以用多个逗号分隔。要正确发送电子邮件,还需要在oozie自定义站点正确配置oozie电子邮件客户端。可能需要配置的参数如下:
Custom oozie-site oozie.email.smtp.password oozie.email.from.address oozie.email.smtp.auth oozie.email.smtp.host oozie.email.smtp.port oozie.email.smtp.username oozie.service.ProxyUserService.proxyuser.falcon.groups oozie.service.ProxyUserService.proxyuser.falcon.hosts
从oozie3.1开始,您可以在每个操作中配置参数retry和retry interval。要实现这一点,可以在action标记内设置以下参数
<action name="a" retry-max="2" retry-interval="1"> .... </action>
更多信息可以在oozie文档中找到或修改oozie-default.xml上的重试和重试间隔默认值。此处指定了通用默认值
1条答案
按热度按时间imzjd6km1#
您可以将oozie的工作流配置为在失败时发送电子邮件。您可以通过将错误标记从任何操作重定向到发送电子邮件操作来实现这一点。
电子邮件配置的示例如下。
请注意,电子邮件地址可以用多个逗号分隔。要正确发送电子邮件,还需要在oozie自定义站点正确配置oozie电子邮件客户端。可能需要配置的参数如下:
从oozie3.1开始,您可以在每个操作中配置参数retry和retry interval。要实现这一点,可以在action标记内设置以下参数
更多信息可以在oozie文档中找到或修改oozie-default.xml上的重试和重试间隔默认值。此处指定了通用默认值