大数据:任务调度

本文介绍了任务流调度的需求、工具,重点解析了Oozie的功能、优缺点,并通过实例展示了Oozie的WorkFlow、Fork、Join、SubFlow的使用,以及定时和自动化调度的实现。适合需要理解Hadoop任务调度的读者。
摘要由CSDN通过智能技术生成

任务调度

一、任务流调度的需求

整体需求

  • 相同的业务线,有不同的需求会有多个程序来实现,这多个程序共同完成的需求,组合在一起就是工作流或者叫做任务流
  • 基于工作流来实现任务流的自动化运行

在这里插入图片描述
基于时间的任务运行

  • Job1和Job2是在每天固定的时间去采集昨天的数据
  • 每天00:00

基于运行依赖关系的任务运行

  • Job3必须等待Job1运行成功,才能运行
  • Job5必须等待Job3和Job4都运行成功才能运行

调度类型

  • 定时调度:基于某种时间的规律进行调度运行
  • 依赖调度:基于某种依赖关系进行调度运行

二、任务流调度的工具

Linux Crontab
Linux中自带的一个工具

  • 优点

    • 简单,不用做额外的部署,能实现大多数的定时需求
    • crontab -e
  • 缺点

    • 只能做定时任务的执行
  • 语法

    *			*			*			*			*			command
    分钟	   小时		    日			月		   周几
    

Oozie
Cloudera公司研发的Hadoop生态圈的调度工具

  • 官网:oozie.apache.org
  • 优点
    • 功能很强大,能满足几乎所有常规的任务流调度的需求
    • 支持DAG流程调度
  • 缺点
    • 本身不是分布式的工具,依赖于MapReduce来实现分布式
    • 原生的交互开发接口不友好
    • 整体的监控不完善
    • 学习成本比较高

Zeus
阿里巴巴最早基于Hadoop1研发的一个调度系统,目前市场上的Zeus一般都是携程版本的Zeus

  • 优点
    • 交互非常友好
    • 使用非常简单
    • 分布式的,功能相对也比较全面
  • 缺点
    • Bug非常多,阿里没有继续研发Zeus,不支持Hadoop2

Azkaban
LinkedIn公司研发的分布式调度工具

  • 优点
    • 重点着重于自身的调度功能的研发,其他的辅助性功能都通过插件来完成
    • 自身也是分布式调度系统
    • 界面交互性比较友好
    • 开发交互性:properties或者JSON
  • 缺点
    • 3.x版本开始才支持完全分布式

三、Oozie的简介

功能

  • Oozie是一个专门为管理Hadoop生态的程序调度而设计的工作流调度系统
  • 基于DAG实现依赖调度:WorkFlow
  • 基于定时器实现定时调度:Coordinator

特点

  • 优点:功能全面
  • 缺点:部署相对复杂、原生开发方式过于复杂

应用

  • 基于Hadoop平台的分布式离线任务流调度

原理

  • 底层依赖于MapReduce,将工作流变成MapReduce程序,提交个YARN
  • 由YARN来将不同的工作流分配到不同的机器上运行,用于构建分布式调度系统

四、Oozie的2种使用方式

原生方式

  • 这种方式,是通过自己写代码的方式来实现工作流的开发,效率低,容易出问题,不用

  • 实现一个效果:4个程序

    • 第一个程序:shell脚本,定时运行的
    • 第二个程序:Spark程序,必须等第一个程序运行完才能运行
    • 第三个程序:MapReduce程序,必须等第二个程序运行才能运行’
    • 第四个程序:Hive,必须等第三个程序运行完才能运行
  • 先要开发一个XML文件

    • 控制节点:start、end、kill
      • 控制程序运行的流程
    • start:开始节点
      • end:终止节点
      • kill:强制退出节点
      • fork:分支节点
      • join:合并节点
    • 程序节点:action
<start to="first">
<action name="first">
	<shell>
		<path>xxx.sh</path>
		<args></args>
	</shell>
	<ok to="second"> </ok>
	<error to="kill"></error>
</action>
<
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值