前言
- 本文以Azkaban官网为参照,解读如何正确编译安装Azkaban,如有错误之处,请不吝指出。
编译前准备
-
Azkaban介绍:Azkaban官网开篇介绍,Azkaban is a distributed Workflow Manager, implemented at LinkedIn to solve the problem of Hadoop job dependencies. We had jobs that needed to run in order, from ETL jobs to data analytics products.可以很直接的看出Azkaban是一个基于工作流,分布式的调度框架,何为工作流,即作业与作业之间相互的依赖关系的顺序执行。
-
Azkaban以Java语言编写,可部署在linux等系统平台,需要JDK8+的支持,采用Gradle进行编译。
-
环境准备:
JDK1.8+的部署,此过程就不再细说 gcc-c++编译器的安装:yum -y install gcc-c++ 官网github地址下载源码:git clone https://github.com/azkaban/azkaban.git
编译
[root@boyi_bi ~]#cd /opt/src/azkaban
[root@boyi_bi azkaban]#./gradlew build #此过程需要时间相对较长,耐心等待,编译失败时查看报错信息
[root@boyi_bi azkaban]#./gradlew clean #编译成功后执行
[root@boyi_bi azkaban]#./gradlew installDist
[root@boyi_bi azkaban]#./gradlew test
[root@boyi_bi azkaban]#./gradlew distTar #编译完成后将相关文件打车工tar包
- bulid成功之后,分别进入如下目录:
/opt/src/azkaban/azkaban-db/build/distributions #为Azkaban数据库安装脚本tar包
/opt/src/azkaban/azkaban-exec-server/build/distributions #为Azkaban executor 安装包
/opt/src/azkaban/azkaban-web-server/build/distributions #为Azkaban Web 服务安装包
解压到安装目录等待安装即可
部署
- Azkaban的工作模式分成executor,web,mysql数据库。其中executor是用于执行Azkaban job(即我们上传的job);而web是用于方便交互操作的web界面;mysql数据库是Azkaban用于存储job,运行过程/结果等信息。mysql不必安装在Azkaban安装的机器上。它们机器之间只要能够访问即可。
- Azkaban有两种部署方式:
Solo Server,单机模式,仅用于测试,方便,快捷
Multi Executor Server,多执行器模式,线上部署的使用方式
Solo Server
-
运行方式是executor server和web server运行在同一进程,部署方式较为简单,将编译好的文件azkaban-solo-server下的tar包解压到相应文件夹下,开启运行即可。
bin/start-solo.sh bin/shutdown-solo.sh
访问web地址:http://localhost:8081/
Multi Executor Server
-
安装Mysql
-
建库建表
mysql> CREATE DATABASE azkaban; mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to '<username>'@'%' WITH GRANT OPTION; mysql> USE azkaban; mysql> SOURCE /opt/software/azkaban/azkaban-db-3.80.0-6-gf9a849f/create-all-sql-3.80.0-6-gf9a849f.sql
-
安装Executor Server
修改配置文件azkaban.properties mysql.user=<username> mysql.password=<password> 执行 [root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#./bin/start-exec.sh 服务起来后,唤醒服务,才能真正使用 [root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo 若启动服务报错,需删除executor.port文件然后再执行上述步骤
-
安装Web Server
修改相应配置文件azkaban.properties
mysql.user=
mysql.password=
执行
[root@boyi_bi azkaban-exec-server-3.80.0-6-gf9a849f]#./bin/start-web.sh
查看日志,如重要报错即可,访问web:http://localhost:8081/