一个完整的数据分析系统通常都是由大量任务单元组成,例如:shell脚本,Java程序,MapReduce程序、Hive脚本等,各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。类似于Oozie,Azkaban便是一个工作流调度的组件。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~
目录
一、Azkaban简介
1.1 什么是Azkaban
1.2 Azkaban的特点
1.3 Azkaban的架构
二、Azkaban的安装部署
2.1 下载、上传、解压
2.2 创建数据库
2.3 生成密钥对和证书
2.4 修改配置文件
2.5 启动Azkaban
Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key-value对的方式,通过配置中dependencies来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流。
1、兼容任何版本的hadoop;2、易于使用的Web用户界面;3、简单工作流的上传;4、方便设置任务之间的关系;5、调度工作流;6、模块化和可插拔的插件机制;7、认证/授权(权限的工作);8、能够杀死并重新启动工作流;9、有关失败和成功的电子邮件提醒。
在工作流调度系统里面,简单的任务调度可以直接使用crontab实现;而复杂的任务调度通常使用开发调度平台或现成的开源调度系统,比如Ooize、Azkaban等。
Azkaban由三个关键组件构成:
1、AzkabanWebServer:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
2、AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过MySQL数据库来协调任务的执行。
3、关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer和AzkabanExecutorServer都需要访问数据库。
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/
3、对解压后的目录重命名
1、创建azkaban数据库
2、在创建的数据库中导入脚本
mysql> source /opt/modules/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
Keytool是Java数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。相关参数解释如下:
1、-keystore:指定密钥库的名称及位置(产生的各类信息将存在.keystore文件中)。
2、-genkey(或者-genkeypair):生成密钥对。
3、-alias:为生成的密钥对指定别名,如果没有默认是mykey。
4、-keyalg:指定密钥的算法RSA/DSA,默认是DSA。
使用如下命令生成keystore的密码及相应信息的密钥库:
keytool -keystore keystore -alias xzw -genkey -keyalg RSA
此时,我们可以发现该目录下出现了keystore文件,我们使用如下命令查看keystore中的内容:
keytool -keystore keystore --list
1、修改web/conf目录下的azkaban.properties配置文件
2、修改web/conf目录下的azkaban-users.xml配置文件
3、修改executor/conf目录下的azkaban.properties配置文件
使用如下命令启动Azkaban:
[root@master azkaban]# ./executor/bin/azkaban-executor-start.sh
[root@master azkaban]# ./web/bin/azkaban-web-start.sh
我们也可以登录到web界面进行查看:
以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~