azkaban 与 java任务_任务调度工具oozie和azkaban的对比

1.工作流调度工具:(azkaban 和oozie的对比)

工作流调度:一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等,各任务单元之间存在时间先后及前后依赖关系。为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。

调度工具性能对比:Apache Oozie,其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。

Oozie和Azkaban的区别:

两者在功能方面大致相同,只是Oozie底层在提交Hadoop Spark作业是通过org.apache.hadoop的封装好的接口进行提交,而Azkaban可以直接操作shell语句。在安全性上可能Oozie会比较好。

工作流定义:Oozie是通过xml定义的而Azkaban为properties来定义。

部署过程:Oozie的部署相对困难些,同时它是从Yarn上拉任务日志。

Azkaban中如果有任务出现失败,只要进程有效执行,那么任务就算执行成功,这是BUG,但是Oozie能有效的检测任务的成功与失败。

操作工作流:Azkaban使用Web操作。Oozie支持Web,RestApi,Java API操作。

权限控制:Oozie基本无权限控制,Azkaban有较完善的权限控制,供用户对工作流读写执行操作。

Oozie的action主要运行在hadoop中而Azkaban的actions运行在Azkaban的服务器中。

记录workflow的状态:Azkaban将正在执行的workflow状态保存在内存中,Oozie将其保存在Mysql中。

出现失败的情况:Azkaban会丢失所有的工作流,但是Oozie可以在继续失败的工作流运行

2.调度工具介绍:(azkaban 和oozie)

Azkaban介绍

Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

它有如下功能特点:

1.Web用户界面

2.方便上传工作流

3.方便设置任务之间的关系

4.调度工作流

5.认证/授权(权限的工作)

6.能够杀死并重新启动工作流

7.模块化和可插拔的插件机制

8.项目工作区

9.工作流和任务的日志记录和审计

Oozie介绍

Oozie工作流是放置在控制依赖DAG(有向无环图 Direct

Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。

hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执行的流程,并包含工作流的起点和终点(start、end和fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。动作节点是一些机制,通过它们工作流会触发执行计算或者处理(如下图)

e87c9f8dbe724aa3e06bff3c5d585586.png

3.Azkaban和Oozie的基本操作

Azkaban:

Azkaban的工作流的创建特别方便,直接通过web界面创建工程,然后提交任务。(创建job的的文件必须是以.job的文件,并且上传的文件是以zip压缩包的形式进行上传)。

创建工作流的基本流程:

(1)创建工程,提交任务。

eb7ee749fb9c8229e7bf9db4533ab511.png

15097b9506346a233b0f65e771ee4883.png

(2)任务提交完成之后bar.job和foo.job之间的依赖关系显示在web 界面当中。

6ef3a97c284475596ec50a59dc483996.png

(3)然后执行相应提交的任务。如下图两者的对应关系,可以直接执行单个的任务,也可以指定定时任务。可设置定时任务的执行时间。同时可以在定时执行完成之后做相应的提醒服务。

f0bd4c6c9e1d08e3f70b73582df7bf40.png

50ebd06c7faf1bdd6f1f0bc9d418e3f8.png

e877f9d238d812da7c980c89e9a06c0b.png

c572aa1e5ad05de1dcea7df451c20ac0.png

c2dfdea09b321e2ca3af306c0ac64c81.png

21e0f0191880e4ef418f5eaead805991.png

5e68a762602395f1bbbf9509eb1d721b.png

64db92b542d8d8e2c0d2274425278bad.png

e02ea9082da1cec04b95c748c265a493.png

Oozie的基本操作:

操作准备;

job.properties

任务的一些配置文件,例如运行的HDFS以及JobTracker

(ResourceManager)等

Lib

存放执行的JAR包

Workflow.xml

工作流的依赖

****.jar

执行任务的jar包(自定义的文件)

9ad8dc4436f45bc265e4c6dd74f23e1b.png

9e90caf48af982ce355c4d205a784bad.png

在ooize的client端执行:

Oozie job

--oozie http://ip:11000/oozie -config ${job.properties} -run

执行之后,可以在web页面查询执行的结果。

4.在hue当中操作ooize的操作

在hue当中操作ooize的操作:

Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基于浏览器的图形化用户接口。

Hue可实现对oozie任务的开发,监控,和工作流协调调度 。使的oozie的操作变得更加的简单快捷。

(1)

创建工作流

2e00da882b80f7e7c68c0fb1e496ec62.png

8ad1ce2394e743dcb8eee09e3e868c4c.png

7b6095dc66cb90dea1c675e8203851e4.png

5acefaa04e65aa4b1c408a96cbb2a678.png

运行完成产生相对应的xml文件和相对的日志信息:

d1858df1b5b8bceee3f05abcebe3c8f3.png

3d68a00983fc5b6abaf34203faa1cff0.png

添加到定制执行任务。指定定时任务。

6ace4d1eef53cbc966828782567fcc2e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值