环境:CentOS-6.7、jdk1.8、MySQL5.7
在上一篇中,azkaban的webServer和executorServer运行在同一个进程中,使用的H2数据库,本篇将使用MySQL数据库,并将webServer和executorServer分别部署,以便适用于作业量比较多的工程。
一、前期准备部分
1、环境的编译
上一篇中,已经完成azkaban单节点环境的编译,目录为/app/azkaban-3.57.0/,
进入该目录,进一步编译源码,编译完成后,确认azkaban-exec-server、azkaban-web-server、azkaban-solo-server、azkaban-db四个目录中的build/distributions/下是否生成压缩包
cd /app/azkaban-3.57.0/
./gradlew build -x test
2、配置mysql数据库
cd /app/azkaban-3.57.0/azkaban-db/build/sql
确保该目录下存在create-all-sql-0.1.0-SNAPSHOT.sql文件
登陆MySQL,执行以下语句:
1、CREATE DATABASE azkaban;
2、CREATE USER ‘azkaban’@’%’ IDENTIFIED BY ‘Azkaban@123’;
3、GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to ‘azkaban’@’%’ WITH GRANT OPTION;
4、flush privileges;
5、use azkaban;
6、source create-all-sql-0.1.0-SNAPSHOT.sql;
mkdir -p /app/azkaban
cd /app/azkaban
②执行keytool -keystore keystore -alias jetty -genkey -keyalg RSA命令
注:Warning信息可忽略
二、azkaban-exec-server部分
1、将azkaban-exec-server压缩包解压至/app/azkaban目录
cd /app/azkaban-3.57.0/azkaban-exec-server/build/distributions
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /app/azkaban/
2、修改azkaban.properties配置文件
cd /app/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/
vi conf/azkaban.properties
#以下为新增和修改部分,并非azkaban.properties全部内容
default.timezone.id=Asia/Shanghai
azkaban.webserver.url=http://192.168.1.103:8081
azkaban.jobtype.plugin.dir=/app/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/plugins/jobtypes
database.type=mysql
mysql.port=3306
mysql.host=192.168.1.103
mysql.database=azkaban
mysql.user=azkaban
mysql.password=Azkaban@123
mysql.numconnections=100
jetty.use.ssl=true
jetty.ssl.port=8443
jetty.keystore=/app/azkaban/keystore
jetty.password=000000
jetty.keypassword=000000
jetty.truststore=/app/azkaban/keystore
jetty.trustpassword=000000
3、修改commonprivate.properties配置文件
cd /app/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
vi plugins/jobtypes/commonprivate.properties
#添加以下内容
azkaban.native.lib=false
memCheck.enabled=false
4、启动azkaban-exec-server服务
bin/start-exec.sh
curl -G "192.168.1.103:$(<./executor.port)/executor?action=activate" && echo
注:azkaban-exec-server启动后,可进入MySQL,通过select * from executors;查看启动是否成功
三、azkaban-web-server部分
1、将azkaban-web-server压缩包解压至/app/azkaban目录
cd /app/azkaban-3.57.0/azkaban-web-server/build/distributions
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /app/azkaban/
2、修改azkaban.properties文件,参见azkaban-exec-server/conf/azkaban.properties
3、启动azkaban-web-server服务
bin/start-web.sh
4、通过jps命令检查azkaban-web-server、azkaban-exec-server服务是否启动
注:需要先启动azkaban-exec-server,否则azkaban-web-server启动过程中会报错
5、通过浏览器登陆https://192.168.1.103:8081页面,用户名密码记录在/app/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf目录下的azkaban-users.xml中
注:使用Firefox浏览器登录报(Error code: sec_error_ca_cert_invalid)错误
可能出现错误:azkaban默认需要3G的内存,剩余内存不足则会报异常
解决方法:
在azkaban-exec/servcer/plugin/azkaban-exec-server/plugins/jobtypes/ 目录下,在文件commonprivate.properties 中添加 memCheck.enabled=false然后修改
azkaban-exec-server/plugin/azkaban.properties文件中azkaban.jobtype.plugin.dir的路径为绝对路径