oozie 重新提交作业
2013-09-03 23:42
302 查看
在oozie的运行过程当中可能会出现错误,比如数据库连接不上,或者作业执行报错导致流程进入suspend或者killed状态,这个时候我们就要分析了,如果确实是数据或者是网络有问题,我们比如把问题解决了才可以重新运行作业。重新运行作业分两种情况,suspend状态和killed状态的,这两种状态是要通过不同的处理方式来处理的。
(1)suspend状态的我们可以用resume方式来在挂起的地方恢复作业,重新运行,或者是先杀掉它,让它进入killed状态,再进行重新运行。
(2)killed状态的重新运行方法和它不一样,下面先贴出代码。
好,现在开始讲解,重新运行作业,除了需要原有流程的id之外,还需要重新配置作业属性,它可以和原来的属性不一样,这里面有两个属性是必须要注意的,它们是重新提交作业必须具备的属性,如果不存在就会报错的,它们分别是oozie.wf.rerun.failnodes和oozie.wf.rerun.skip.nodes。这两个必须必须存在一个,第一个是自动运行失败的流程节点,第二个是需要跳过的节点,通过设置这个属性的话,如果已经运行成功的节点不在这个属性里面的话就可以让已经运行成功的节点再运行一遍了,爽吧!
好啦,就到这吧,oozie貌似就这么多东西了,目前貌似一直都没有看到它的事务机制,它的定时作业不太想研究,看着就费劲儿,还不如自己写一个定时作业呢。。。
(1)suspend状态的我们可以用resume方式来在挂起的地方恢复作业,重新运行,或者是先杀掉它,让它进入killed状态,再进行重新运行。
public static void resumeJob(String jobId) { try { OozieClient wc = new OozieClient("http://192.168.1.133:11000/oozie"); wc.resume(jobId); } catch (OozieClientException e) { log.error(e); } } public static void killJob(String jobId) { try { OozieClient wc = new OozieClient("http://192.168.1.133:11000/oozie"); wc.kill(jobId); } catch (OozieClientException e) { log.error(e); } }
(2)killed状态的重新运行方法和它不一样,下面先贴出代码。
public static void reRunJob(String jobId, Properties conf) { OozieClient wc = new OozieClient("http://192.168.1.133:11000/oozie"); try { Properties properties = wc.createConfiguration(); properties.setProperty("nameNode", "hdfs://192.168.1.133:9000"); properties.setProperty("queueName", "default"); properties.setProperty("examplesRoot", "examples"); properties .setProperty("oozie.wf.application.path", "${nameNode}/user/cenyuhai/${examplesRoot}/apps/map-reduce"); properties.setProperty("outputDir", "map-reduce"); properties.setProperty("jobTracker", "http://192.168.1.133:9001"); properties.setProperty("inputDir", "/user/cenyuhai/examples/input-data/text"); properties.setProperty("outputDir", "/user/cenyuhai/examples/output-data/map-reduce"); properties.setProperty("oozie.wf.rerun.failnodes", "true"); //这两个参数只能选一个,第一个是重新运行失败的节点,第二个是需要跳过的节点 // properties.setProperty("oozie.wf.rerun.skip.nodes", ":start:"); wc.reRun(jobId, properties); } catch (OozieClientException e) { log.error(e); } }
好,现在开始讲解,重新运行作业,除了需要原有流程的id之外,还需要重新配置作业属性,它可以和原来的属性不一样,这里面有两个属性是必须要注意的,它们是重新提交作业必须具备的属性,如果不存在就会报错的,它们分别是oozie.wf.rerun.failnodes和oozie.wf.rerun.skip.nodes。这两个必须必须存在一个,第一个是自动运行失败的流程节点,第二个是需要跳过的节点,通过设置这个属性的话,如果已经运行成功的节点不在这个属性里面的话就可以让已经运行成功的节点再运行一遍了,爽吧!
好啦,就到这吧,oozie貌似就这么多东西了,目前貌似一直都没有看到它的事务机制,它的定时作业不太想研究,看着就费劲儿,还不如自己写一个定时作业呢。。。
相关文章推荐
- oozie 提交作业时因请求资源不足而suspend的解决方法
- oozie JAVA Client 编程提交作业
- 课后作业(因博客源问题,发的邮箱作业,重新提交博客园)
- Oozie提交作业总结
- oozie java api提交作业
- .在重新部署了oozie-site.xml之后,不能够寻找到工作流作业对应的hadoop jobid
- 重新提交的作业相较于第一次作业的改进
- MapReduce调度与执行原理之作业提交
- 第一次作业提交时间
- 第三章部分作业重新调试结果(第五周)
- 4. 如何重新提交表单、重新加载
- 提交第一个spark作业到集群运行
- Oozie 中各种类型的作业执行结果记录
- 如果防止IE出现“要再次显示该网页internet exploer 需要重新发送您以前提交的信息..”
- Hadoop作业提交多种方案具体流程详解
- MapReduce提交作业常见问题
- Hadoop作业提交分析(一)
- Hadoop作业提交分析(一)
- Hadoop作业提交分析(一)
- PHP 刷新 弹出重新提交表单的弹框