Sqoop 作业失败通知
Sqoop job failure notification
假设我已经配置了 10 个 sqoop 作业。如果其中之一失败了,我怎么知道?在 sqoop 中有任何配置吗?
您可以为此用例创建一个 oozie 工作流。创建一个 java 操作,用于在失败时发送电子邮件。
您可以编写一个 java 小程序来发送包含所需消息的电子邮件,并通过 Java 操作调用它。
@divinedragon 您可以将所有 sqoop 作业放在一个 shell 脚本中,并编写一个小代码来发送失败状态。失败状态邮件 Shell 代码如下所示:
定义电子邮件函数
email_func_fail()
{
mail -s "FAILED: Status job failed for date" -c "${CC_LIST}" "$TO_ADDRESS" < ${log_file}
}
在每个作业之后,检查失败状态。如果作业失败,请发送电子邮件
if [ $? -ne 0 ]
then
email_func_fail
exit 1
fi
当你运行一个sqoop作业时,它会给你一个MapReduce jobid;像 "application_job_1500540444935_0302" 这样的东西,你可以在你的资源管理器中查看。 Hadoop resourcemanager 还提供 RestApi 来查询您的作业状态。
RestApi 是- "http://ResourceManagerIP:ResourceManagerPort(通常为 8088)/ws/v1/cluster/apps/(job_id)"
您可以使用此 api 获取工作状态。
假设我已经配置了 10 个 sqoop 作业。如果其中之一失败了,我怎么知道?在 sqoop 中有任何配置吗?
您可以为此用例创建一个 oozie 工作流。创建一个 java 操作,用于在失败时发送电子邮件。 您可以编写一个 java 小程序来发送包含所需消息的电子邮件,并通过 Java 操作调用它。
@divinedragon 您可以将所有 sqoop 作业放在一个 shell 脚本中,并编写一个小代码来发送失败状态。失败状态邮件 Shell 代码如下所示:
定义电子邮件函数
email_func_fail()
{
mail -s "FAILED: Status job failed for date" -c "${CC_LIST}" "$TO_ADDRESS" < ${log_file}
}
在每个作业之后,检查失败状态。如果作业失败,请发送电子邮件
if [ $? -ne 0 ]
then
email_func_fail
exit 1
fi
当你运行一个sqoop作业时,它会给你一个MapReduce jobid;像 "application_job_1500540444935_0302" 这样的东西,你可以在你的资源管理器中查看。 Hadoop resourcemanager 还提供 RestApi 来查询您的作业状态。
RestApi 是- "http://ResourceManagerIP:ResourceManagerPort(通常为 8088)/ws/v1/cluster/apps/(job_id)"
您可以使用此 api 获取工作状态。