在oozie的运行过程当中可能会出现错误,比如数据库连接不上,或者作业执行报错导致流程进入suspend或者killed状态,这个时候我们就要分析了,如果确实是数据或者是网络有问题,我们比如把问题解决了才可以重新运行作业。重新运行作业分两种情况,suspend状态和killed状态的,这两种状态是要通过不同的处理方式来处理的。

  (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 重新提交作业的更多相关文章

  1. oozie java api提交作业

    今晚试验用java的api来提交代码,由于代码是在我机器上写的,然后提交到我的虚拟机集群当中去,所以中间产生了一个错误..要想在任意一台机器上向oozie提交作业的话,需要对hadoop的core-s ...

  2. Spark源码系列(一)spark-submit提交作业过程

    前言 折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业的提交过程. 这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配.今天我要讲的是如 ...

  3. eclipse 提交作业到JobTracker Hadoop的数据类型要求必须实现Writable接口

    问:在eclipse中的写的代码如何提交作业到JobTracker中的哪?答:(1)在eclipse中调用的job.waitForCompletion(true)实际上执行如下方法 connect() ...

  4. Coursera无法正常提交作业

    如下图,upload服务貌似被墙了,想要提交作业的话需要临时科学上网.

  5. Spark集群之yarn提交作业优化案例

    Spark集群之yarn提交作业优化案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.启动Hadoop集群 1>.自定义批量管理脚本 [yinzhengjie@s101 ...

  6. 《实时控制软件设计》之Github提交作业步骤

    在掌握GIT/GITHUB基本操作后,接下来把第一次的编程作业提交到 https://github.com/RTCSD15/HOMEWORK1 ,把第二次的编程作业提交到https://github. ...

  7. 如何使用git 提交作业 收作业

    如何使用git 提交作业 收作业 方法论: 今天就来用一个通俗易懂的自然模型来解释Git的commit,pull和push.不过,我们首先要理解两个名词,remote,local. remote,翻译 ...

  8. 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)

    2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...

  9. git 提交作业流程

    git 提交作业流程,主要分为4个步骤 # 拉取远程git最新版本到本地,每次都可以先执行这条命令,因为会有其他同学更新仓库 git pull # add需要上传的文件,那个文件修改或者新增的,就ad ...

随机推荐

  1. EPI Server相关

    下载地址: http://world.episerver.com/download/Episerver-CMS/ 文档: http://world.episerver.com/documentatio ...

  2. MySQL各类日志文件相关变量介绍

    文章转自:http://www.ywnds.com/?p=3721 MySQL各类日志文件相关变量介绍 查询所有日志的变量   1 mysql> show global variables li ...

  3. Spring ORM数据訪问——Hibernate

    Hibernate 我们将首先介绍Spring环境中的Hibernate 5.然后介绍使用Hibernate 5来演示Spring集成O-R映射器的方法. 本节将具体介绍很多问题,并显示DAO实现和事 ...

  4. JVM调优——之CMS GC日志分析

    最近在学习JVM和GC调优,今天总结下CMS的一些特点和要点,让我们先简单的看下整个堆年轻代和年老代的垃圾收集器组合(以下配合java8完美支持,其他版本可能稍有不同),其中标红线的则是我们今天要着重 ...

  5. kernel dump Analysis

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/0c418482-7edd-4c91-b7f4-6005d550244a/got-the- ...

  6. [AWS vs Azure] 云计算里AWS和Azure的探究(5) ——EC2和Azure VM磁盘性能分析

    云计算里AWS和Azure的探究(5) ——EC2和Azure VM磁盘性能分析 在虚拟机创建完成之后,CPU和内存的配置等等基本上是一目了然的.如果不考虑显卡性能,一台机器最重要的性能瓶颈就是硬盘. ...

  7. 字符测试与映射函数 ctype.h

    对于C Standard Library 可以参考:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 或者 http://www.cplusplus.c ...

  8. 每日英语:Three Shows That Changed The Way Networks Think About Viewership

    As we continue examining this season’s DVR success stories in The Blacklist and Sleepy Hollow it mak ...

  9. mac book air 与 virtual box 网络互访 安装centos7 mini

    Host-only Adapter     主机模式     虚拟机之间可以访问...主机可以访问虚拟机 NAT                          网络地址转换模式(Network A ...

  10. LeetCode: Palindrome Partitioning II 解题报告

    Palindrome Partitioning II Given a string s, partition s such that every substring of the partition ...