我安排了一个协调员,该协调员启动了许多单独的工作流程。这是一个回填协调器,具有过去的开始日期和结束日期。
由于输入数据集的临时问题,这些作业中有一小部分失败了,现在我需要重新运行这些工作流(无需重新运行成功的工作流)。这些不成功的工作流有多种状态:KILLED、FAILED 和 SUSPENDED。
做这个的最好方式是什么?
我最终编写了一个 bash 脚本来做到这一点。我不会在这里复制整个脚本,但这是大纲:
首先,解析 的输出oozie job -info
以获取具有给定协调器的给定状态的操作列表:
actions=$(oozie job -info $oozie_coord -filter status=$status -len 1000 |
grep "\-C@" |
awk '{print $1}' |
sed -n "s/^.*@\([0-9]*\).*$/\1/p")
然后循环执行这些操作并发出重新运行命令:
while read -r action; do
oozie job -rerun $oozie_coord -action $action
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句