Azkaban任务调度系统任务调度系统(安装搭建安装搭建)
无论是在业务开发还是在大数据开发中,脚本都是必不可少的存在,在初期我们会使用crontab来解决问题,那么当发现规模变大
监控需求可视化需求的到来Crontab已经显然满足不了需求,抱着一颗解决大数据任务脚本和业务任务脚本难题的心态最终在
oozie和Azkaban选择了使用Azkaban来作为公共任务调度系统,那么就随着笔者一同来学习Azkaban的基础搭建场景和基本使
用吧.
Azkaban官网: https://azkaban.github.io
官方文档地址: http://azkaban.github.io/azkaban/docs/latest
一 ,基础介绍
为什么需要任务调度?
一个完整的数据分析系统(业务系统)通常都是由大量任务单元组成:
- shell脚本程序
- java,python程序
- mapreduce程序
- hive脚本等
- …等等
各任务单元之间存在时间先后及前后依赖关系 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执
行;
1、 通过Hadoop先将原始数据同步到HDFS上;
2、 借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;
3、 需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;
4、 将明细数据进行复杂的统计分析,得到结果报表信息;
5、 需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。
每一个任务都依赖于上一个任务的结构,在这样的一个复杂度下显然Crontab已经满足不了需求,应为复杂度的提升还会出现失
败处理分支和重试机制等
Azkaban的三种模式
Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver
solo-server模式:exec进程和web进程为同一个进程,存放元数据的数据库为H2
two-server模式:与之前的单机版本类似,exec进程和web进程分开,存放元数据的数据库为mysql
multiple-executor模式:exec进程和web进程在不同的机器上,存放元数据的数据库为mysql
二, 安装
使用系统组件版本如下:
- centos-7.4
- mysql-5.7