zoukankan      html  css  js  c++  java
  • oozie调度中的重试和手工rerun一个workflow

    在oozie中有Bundle、Coordinator和Workflow三种类型的job,他们之间可以有以下包含关系。

    Bundle > Coordinator > Workflow。

    1. 重新运行一个Coordinator job,可以通过如下命令:

    oozie job -rerun 0000034-180116183039102-oozie-hado-C -refresh -action 1-4
    0000034-180116183039102-oozie-hado-C 表示coordinator的job id
    -action 表示包含的action对应的序号的1-4,即重新运行历史的4次job。

    2. 如果只想重新运行一个workflow job,可以通过如下命令:

    oozie job -rerun 0000411-180116183039102-oozie-hado-W -config rerun_workflow.xml
    或者通过-D 参数直接设置 (上面rerun_workflow.xml中内容也是oozie.wf.rerun.failnodes=false的xml形式而已)
    oozie job -rerun 0000411-180116183039102-oozie-hado-W -D oozie.wf.rerun.failnodes=false

    否则会报错如下:

    Error: E0401 : E0401: Missing configuration property [oozie.wf.rerun.skip.nodes OR oozie.wf.rerun.failnodes]

    oozie.wf.rerun.failnodes 参数含义:true指在失败的节点重新运行,false指不在失败的节点运行
    oozie.wf.rerun.skip.nodes 指定跳过哪些节点运行

     

    注意: 使用rerun重新运行workflow的job时,在coordinator中配置的参数会失效,因此通常是rerun一个coordinator程序。

    另外在worfkflow程序中,也可以按照如下配置来自动重试:

    retry-max: 表示重试次数,如果该配置大于系统的配置最大重试次数,则取系统配置的最大次数

    retry-interval: 重试时间间隔,3分钟。 

    总体可以解释为:每3分钟重试一次,一共重试5次。

        <!-- 统计day: dm_guba_loginlog -->
        <action name="hive-node"  retry-max="5" retry-interval="3">
            <hive xmlns="uri:oozie:hive-action:0.2">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <job-xml>${hive_site_path}</job-xml>
                <configuration>
                    <property>
                        <name>mapred.job.queue.name</name>
                        <value>${queueName}</value>
                    </property>
                </configuration>
                <script>script.q</script>
                <param>tmp_table=tmp_dm_guba_loginlog_day</param>
                <param>params_dt=${params_dt}</param>
            </hive>
            <ok to="java-node"/>
            <error to="senderror"/>
        </action>

  • 相关阅读:
    JS字符串截取(获取指定字符后面的所有字符内容)
    vue图片上传插件
    php获取两个日期之间的所有日期
    laravel做定时任务时,加参数(也可缓存参数)
    前端传参数(数组,值为json字符串),后端接收json_decode()转为数组,数组为空值
    springboot的maven多模块项目
    如何给文件重命名
    springboot的get请求和post请求
    java调用ffmpeg
    mybatis批量插入List
  • 原文地址:https://www.cnblogs.com/30go/p/8391328.html
Copyright © 2011-2022 走看看