`
dacoolbaby
  • 浏览: 1267258 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oozie 自动retry和跳节点运行

阅读更多

对于一些Job,可能是由于临时的环境依赖关系,导致的调度失败。

比如说调用远程的WebService接口,Restful接口等。

或者是同步远程数据发生网络异常,这种情况,应该予以自动重跑。

 

在Oozie下面,是支持这样的操作的:

<workflow-app xmlns="uri:oozie:workflow:0.3" name="wf-name">
	<action name="a" retry-max="3" retry-interval="1">
</action>

 注意,这里的schema版本是0.3

retry-max 是最大尝试的次数,但是oozie本身有个最大可尝试的限额,以oozie本身的配置为主。

另外,

retry-interval 是每次尝试间隔的时间,单位是分钟,例子上面是失败后每1分钟尝试一次。

 

这里甚至可以配置Error Code,就是满足一定的错误条件才会进行自动重试。这里略过。

详情:http://oozie.apache.org/docs/3.1.3-incubating/DG_WorkflowReRun.html

----------分割线-------------------

oozie 的Coordinator里面,会产生很多的Action。

这些Action的本质,其实是一个workflow。

 

点开这些Action,在job id 上面可以找到对应的workflow。

使用这些workflow,就可以对现有的action进行按节点重跑。

#rerun workflow 必须指定 [oozie.wf.rerun.skip.nodes (逗号分隔符) OR oozie.wf.rerun.failnodes (true或false)]
oozie job -oozie http://xxxx:8080/oozie -config ./eshop_full2.properties -rerun 0000011-131209095421299-oozie-oozi-W -doas hduser -D oozie.wf.rerun.failnodes=false -D oozie.coord.application.path= 

可以手工指定跳过某些节点 如:

 -D oozie.wf.rerun.skip.nodes=ahhs_media_source_info,ahhs_product_info,city_info_table

 

Coordinator需要指定对应的oozie应用所在的hdfs路径:

oozie.coord.application.path=hdfs://127.0.0.1:9000/xxx/path/

 

Workflow也需要指定路径:

oozie.wf.application.path=hdfs://127.0.0.1:9000/xxx/path/

 

在运行job的时候,上面2个必须只能存在一个。

否则会报错:

protected static void ValidateAppPath(String wfPath, String coordPath, String bundlePath) throws XServletException {
        int n = 0;
        
        if (wfPath != null) {
            n ++;
        }
        
        if (coordPath != null) {
            n ++;
        }
        
        if (bundlePath != null) {
            n ++;
        }
        
        if (n == 0) {
            throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "a workflow, coordinator, or bundle app path is required");
        }
        
        if (n != 1) {
            throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "Multiple app paths specified, only one is allowed");
        }
    }

 源码如上:

 

所以,需要在提交job命令的时候,对另外一个路径进行覆盖:

使用

-D <property=value>   set/override value for given property

 

 

注意:

由于使用workflow的重跑机制,由Coordinator生成的参数会失效。

所以需要手工用-D 的方式手工指定日期参数或者路径参数。

 

 

 

 

 

分享到:
评论

相关推荐

    oozie oozie

    这个文件通常包含创建Oozie在运行时依赖的各种表和视图的命令,比如`VALIDATE_CONN`表,该表可能用于验证和管理Oozie的工作流连接器。 安装Oozie时,你需要执行`oozie.sql`中的SQL语句来初始化数据库。这通常涉及到...

    OOZIE 配置和调度流程(1).doc

    OOZIE 配置和调度流程 OOZIE 是一个开源的工作流调度系统,用于管理和调度 Hadoop 作业。下面是 OOZIE 配置和调度流程的详细知识点: 1. OOZIE 命令: OOZIE 提供了多种命令来管理和调度作业,包括: * 提交并...

    oozie介绍及使用详解

    总结来说,Oozie是大数据环境中的核心调度工具,它使得Hadoop生态系统中的作业管理和执行变得更加高效和自动化。通过合理配置和使用Oozie,可以极大地提高大数据处理的效率和可靠性。在实际工作中,深入学习和掌握...

    尚硅谷大数据技术之Oozie1

    【Oozie简介】 Oozie是Apache项目中的一个工作流管理系统,专门设计用于管理和协调Hadoop生态系统中的任务。它的名字"Oozie"来源于驯象人,寓意其...在部署Oozie时,要注意与Hadoop的集成和配置,以确保系统稳定运行。

    Oozie安装部署及任务定义说明

    6. **fork节点和join节点**:用于并行执行多个任务,fork后可以有多个action,join节点等待所有fork的任务完成后继续执行。 **Oozie任务定时调度** - 可通过oozie的Cron表达式或者time单位(如days, hours, minutes...

    大数据技术之Oozie.doc

    1. **Workflow**:工作流模块是Oozie的基础,它定义了一系列有序的任务节点,通过控制流节点(如start、end、kill、decision、fork、join)和动作节点(如MapReduce、Pig、Hive、Shell等)来实现任务的顺序执行和...

    oozie 入门

    oozie 入门 oozie概述:oozie能干什么 oozie格式:怎么用oozie oozie执行:怎么运行oozie

    oozie使用整理

    通过定义清晰的工作流和控制流节点,用户可以轻松地构建复杂的作业流,并确保它们按照预定的顺序和条件自动执行。无论是对于数据工程师还是数据科学家来说,掌握 Oozie 的使用都是非常有价值的技能。

    Oozie的安装与配置.docx

    - 在Oozie源代码目录下,运行`bin/mkdistro.sh -DskipTests -Dhadoop.version=2.4.1`命令,跳过测试阶段,指定Hadoop版本为2.4.1。首次编译可能需要较长时间,因为Maven会自动下载依赖的jar包。 4. **解决编译错误...

    oozie_demo

    【oozie_demo】项目是一个...通过oozie_demo项目,你可以深入了解Oozie如何在实际项目中协调和调度大数据处理任务,从而提升Hadoop集群的效率和自动化水平。对于学习和实践Hadoop工作流管理来说,这是一个宝贵的资源。

    oozie-5.2.1-distro.tar.gz

    4. **用户界面和API**:提供了一个Web UI供用户监控和管理工作流程,同时提供了RESTful API供开发人员进行集成和自动化操作。 **Oozie-5.2.1的特性:** 1. **性能提升**:Oozie 5.2.1可能包含了性能优化,如更快的...

    大数据Oozie架构原理.pdf

    Oozie 的架构原理是基于工作流的编排,工作流由两种类型的节点组成,分别是“Control Flow Nodes”和“Action Nodes”。Control Flow Nodes 控制工作流执行路径,包括 start, end, kill, decision, fork, join 等。...

    大数据技术之Oozie入门到精通.txt

    **Oozie**是一款开源的工作流调度系统,主要用于在Hadoop生态系统中管理和执行复杂的数据处理任务。它通过定义一系列有依赖关系的操作来实现工作流的自动化执行,并支持Hadoop MapReduce、Hive、Pig等大数据处理工具...

    oozie的控制台用ext依赖

    当我们谈论"oozie的控制台用ext依赖"时,这意味着Oozie的Web控制台可能需要额外的JavaScript库或组件才能正常显示和运行。 在CDH(Cloudera Distribution Including Apache Hadoop)环境下安装Oozie后,可能会遇到...

    ext-2.2.zip oozie

    在部署和配置Oozie的过程中,`ext-2.2.zip`文件起着至关重要的作用,因为它包含了Oozie运行所需的前端资源和JavaScript库,这些资源对于Oozie Web Console的正常运行是必不可少的。 Oozie的工作流引擎设计为可扩展...

    oozie所需的ext下载

    在大数据处理领域,Oozie是一个非常重要的工作流调度...此外,确保所有相关的依赖和配置都已正确设置,这对于Oozie的稳定运行至关重要。在实际操作中,还要遵循最佳实践,如定期备份,以便在出现问题时能够迅速恢复。

    oozie-4.3.0

    9. **监控和日志记录:** Oozie 提供了详细的作业执行日志和状态信息,便于用户跟踪工作流的执行过程,诊断问题和优化性能。 10. **扩展性:** Oozie 设计为可扩展,可以支持自定义的工作流动作,这意味着用户可以...

    oozie配置文件

    通过修改这个文件,我们可以控制Oozie的日志详细程度,这对于调试和监控Oozie的运行状态至关重要。 5. **web.xml.bak**: 这是一个备份的Web应用配置文件,可能包含了Oozie Web UI的相关配置。在某些情况下,Oozie的...

Global site tag (gtag.js) - Google Analytics