官网:https://azkaban.github.io/
Azkaban 一个批量工作流任务调度器,使用Java语言开发。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
Azkaban 的优点
Azkaban 安装模式
Azkaban 有三种部署方式:单服务模式、2个服务模式、分布式多服务模式
安装前准备
执行命令
git clone https://github.com/azkaban/azkaban.git
下载完成后可以看到有一个名为 azkaban 的文件夹,当前最新版本为3.48.0
cd 到 azkaban 目录下,执行如下命令生成一系列文件
./gradlew distTar
新建文件夹:mkdir azkaban-3.48.0
执行命令如下命令拷贝到 azkaban-3.48.0 目录下
$ cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-db/build/distributions/azkaban-db-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ tar -zxvf azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-web-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-db-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-exec-server-3.48.0-4-g9a42cb2 azkaban-exec-server
$ mv azkaban-web-server-3.48.0-4-g9a42cb2 azkaban-web-server
$ mv azkaban-db-3.48.0-4-g9a42cb2 azkaban-db
登录mysql,执行如下语句
mysql> create database azkaban;
Query OK, 1 row affected (0.00 sec)
mysql> use azkaban;
Database changed
mysql> source /home/hadoop/software/azkaban-3.48/azkaban-db/create-all-sql-3.48.0-8-gdc851ec.sql
使用keytool创建SSL配置,keytool是JDK提供的一个工具,输入如下命令,可以查看
[root@harvey azkaban-3.47.0]# find / -name keytool
/home/hadoop/software/jdk/bin/keytool
/home/hadoop/software/jdk/jre/bin/keytool
执行命令创建SSL配置
$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
拷贝 azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz 到 azkaban-3.48.0 目录下,解压并重命名
$ cp azkaban/azkaban-solo-server/build/distributions/azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ tar -zxvf azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-solo-server-3.48.0-8-gdc851ec azkaban-solo-server
将azkaban-solo-server下的conf plugins 和sql文件夹拷贝到azkaban-exec-server
$ cd azkaban-solo-server
$ cp -a conf/ plugins/ sql/ ~/software/azkaban-3.48/azkaban-exec-server
azkaban.name=Harvey # 服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban # 描述信息
default.timezone.id=Asia/Shanghai # 时区,默认为美国America/Los_Angeles
database.type=mysql # 数据库类型
mysql.port=3306 # 端口
mysql.host=192.168.191.65 # 数据库连接IP
mysql.database=azkaban # 数据库实例名
mysql.user=root # 数据库用户名
mysql.password=P@ssw0rd # 数据库密码
mysql.numconnections=100 # 最大连接数
$ touch log4j.properties
log4j.rootLogger=INFO,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
$ mkdir extlib
$ cp lib/mysql-connector-java-5.1.28.jar extlib/
拷贝azkaban-exec-server目录下的conf和extlib到azkaban-web-server目录下
$ cp -a conf/ extlib/ ../azkaban-web-server
cd azkaban-exec-server/bin
./start-exec.sh
cd azkaban-web-server/bin
./start-web.sh
启动完成后,jps查看进程
[hadoop@harvey bin]$ jps
2096 AzkabanExecutorServer
2135 AzkabanWebServer
2154 Jps
启动azkaban遇到问题解决
看到的页面奇丑无比,哈哈,解决方法如下
修改azkaban.properties文件中的web.resource.dir