【摘要】 一个完整的数据分析系统通常都是由大量任务单元组成,例如:shell脚本,Java程序,MapReduce程序、Hive脚本等,各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。类似于Oozie,Azkaban便是一个工作流调度的组件。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~
目录
一、Azkab…
一个完整的数据分析系统通常都是由大量任务单元组成,例如:shell脚本,Java程序,MapReduce程序、Hive脚本等,各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。类似于Oozie,Azkaban便是一个工作流调度的组件。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~
目录
一、Azkaban简介
1.1 什么是Azkaban
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key-value对的方式,通过配置中dependencies来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。
1.2 Azkaban的特点
1、兼容任何版本的hadoop;2、易于使用的Web用户界面;3、简单工作流的上传;4、方便设置任务之间的关系;5、调度工作流;6、模块化和可插拔的插件机制;7、认证/授权(权限的工作);8、能够杀死并重新启动工作流;9、有关失败和成功的电子邮件提醒。
在工作流调度系统里面,简单的任务调度可以直接使用crontab实现;而复杂的任务调度通常使用开发调度平台或现成的开源调度系统,比如Ooize、Azkaban等。
1.3 Azkaban的架构
Azkaban由三个关键组件构成:
1、AzkabanWebServer:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
2、AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过MySQL数据库来协调任务的执行。
3、关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer和AzkabanExecutorServer都需要访问数据库。
二、Azkaban的安装部署
2.1 下载、上传、解压
1、首先需要下载Azkaban的安装包,可以点击这里进行下载。将下载后的安装包上传到服务上:
2、将上传的安装包解压到相关的目录
tar -zxvf azkaban-executor-server-2.5.0.tar.gz -C ../modules/azkaban/
tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C ../modules/azkaban/
tar -zxvf azkaban-web-server-2.5.0.tar.gz -C ../modules/azkaban/
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END