1. OOzie僵死任务的形成原因分析
(1)同时提交多个任务导致相互等待
(2)提交任务后,yarn挂了或yarn的资源不足
(3)提交了任务后,不小心将后台脚本删除
(4)oozie的配置文件中的resourcemananger地址写错,导致连接不上yarn。
2. 解决方法
步骤1:重启Oozie
因数据都是写数据库的,不能清除数据,只是尝试重启。
步骤2:利用Oozie命令杀死job
(1)先找到僵死的job id
到oozie webui上找到僵死任务id
进入任务中找到子任务ID
僵死的job id为:0000027-190827162618880-oozie-oozi-W
(2)利用oozie命令杀掉
su oozie(需要到oozie用户上去杀死)
oozie job --oozie http://10.1.3.11:11000/oozie -kill 0000027-190827162618880-oozie-oozi-W,标黄色的为oozie的连接地址。
(3)通过oozie jobs | grep + job id来查询该job的状态
(4)到oozie webui界面查看状态是否改变。如果还没被杀死,继续步骤3
步骤3:到oozie的数据库更新job status
(1) 进去mysql数据库查询:WF_JOBS
SELECT * FROM oozie.`WF_JOBS` WHERE id ='0000027-190827162618880-oozie-oozi-W';
(2)更新状态job status:
UPDATE WF_JOBS SET STATUS = 'SUCCEEDED' WHERE id ='0000027-190827162618880-oozie-oozi-W';
(3)查看Oozie WebUi的状态
可以看到Oozie Web Ui 的状态由刚开始的两个变成1个
3. 总结
本文阐述了Oozie杀死僵死任务的方法,一般的可以用Oozie的kill命令进行解决,对于一些特殊的解决不了可以试试重启Oozie,再kill,如果还未解决,需要到Oozie的Mysql数据库下查出目前的状态,更新其状态。