这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战
一、准备工作
节点划分如下:
(1)编译
已经得到编译过的包,这步可以越过。
选用 azkaban3.51.0
这个版本自己进行重新编译,编译完成之后得到需要的安装包进行安装。
cd /opt/lagou/software/
wget https://github.com/azkaban/azkaban/archive/3.51.0.tar.gz
tar -zxvf 3.51.0.tar.gz -C ../servers/
cd /opt/lagou/servers/azkaban-3.51.0/
yum -y install git
yum -y install gcc-c++
# -x test 跳过测试
./gradlew build installDist -x test
复制代码
(2)上传编译后的安装文件
# 在 linux122 节点创建目录
mkdir /opt/lagou/servers/azkaban
复制代码
(3)安装需要软件
Azkaban Web
服务安装包
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
Azkaban
执行服务安装包
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
sql
脚本
azkaban-db-0.1.0-SNAPSHOT.tar.gz
(4)数据库准备
在
linux123
节点,运行如下命令
# 解压数据库脚本
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /opt/lagou/servers/azkaban
# 进入客户端, 密码:12345678
mysql -uroot -p
# 执行以下命令:
SET GLOBAL validate_password_length=5;
SET GLOBAL validate_password_policy=0;
CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
CREATE DATABASE azkaban;
GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';
FLUSH PRIVILEGES;
use azkaban;
# 在数据库中运行,加载初始化sql创建表
source /opt/lagou/servers/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;
复制代码
验证一下:
mysql> show tables;
+--------------------------+
| Tables_in_azkaban |
+--------------------------+
| QRTZ_BLOB_TRIGGERS |
| QRTZ_CALENDARS |
| QRTZ_CRON_TRIGGERS |
| QRTZ_FIRED_TRIGGERS |
| QRTZ_JOB_DETAILS |
| QRTZ_LOCKS |
| QRTZ_PAUSED_TRIGGER_GRPS |
| QRTZ_SCHEDULER_STATE |
| QRTZ_SIMPLE_TRIGGERS |
| QRTZ_SIMPROP_TRIGGERS |
| QRTZ_TRIGGERS |
| active_executing_flows |
| active_sla |
| execution_dependencies |
| execution_flows |
| execution_jobs |
| execution_logs |
| executor_events |
| executors |
| project_events |
| project_files |
| project_flow_files |
| project_flows |
| project_permissions |
| project_properties |
| project_versions |
| projects |
| properties |
| triggers |
+--------------------------+
29 rows in set (0.00 sec)
复制代码
二、配置 Azkaban-web-server
在
linux122
节点下
- 解压
azkaban-web-server
mkdir /opt/lagou/servers/azkaban
cd /opt/lagou/software/azkaban
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /opt/lagou/servers/azkaban/
复制代码
- 生成
ssl
证书
cd /opt/lagou/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
# 生成ssl证书:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
# 会生成 `keystore`
[root@linux122 azkaban-web-server-0.1.0-SNAPSHOT]# ll
total 8
drwxr-xr-x 3 root root 65 May 29 2019 bin
drwxr-xr-x 2 root root 106 May 29 2019 conf
-rw-r--r-- 1 root root 2242 Sep 2 01:10 keystore
drwxr-xr-x 2 root root 4096 May 29 2019 lib
drwxr-xr-x 6 root root 73 May 29 2019 web
复制代码
如下图所示:
大红框,输入密码均为 : azkaban 小红框,输入: y 其他信息,直接回车即可。
- 修改
azkaban-web-server
的配置文件
cd /opt/lagou/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf
vim azkaban.properties
# 修改
default.timezone.id=Asia/Shanghai
jetty.use.ssl=true
jetty.port=8443
# 增加,在 mail.host= 下增加即可
jetty.keystore=keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=keystore
jetty.trustpassword=azkaban
# 修改
mysql.port=3306
mysql.host=linux123
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
# 注释如下
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
复制代码
- 添加属性
cd /opt/lagou/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT
# 目录下没有,所以需要创建
mkdir -p plugins/jobtypes
cd plugins/jobtypes/
vim commonprivate.properties
# 添加如下
azkaban.native.lib=false
execute.as.user=false
memCheck.enabled=false
复制代码
三、配置 Azkaban-exec-server
在 linux123 节点上操作
- 上传
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
包到linux123
节点上
# 解压缩
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /opt/lagou/servers/azkaban/
复制代码
- 修改
azkaban-exec-server
的配置文件
cd /opt/lagou/servers/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf
vi azkaban.properties
# 修改
default.timezone.id=Asia/Shanghai
azkaban.webserver.url=https://linux123:8443
mysql.port=3306
mysql.host=linux123
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
# 增加配置,在 executor.flow.threads=30 下行
executor.port=12321
复制代码
- 分发
exec-server
到linux121
节点
[root@linux123 servers]# pwd
/opt/lagou/servers
[root@linux123 servers]# scp -r azkaban linux121:$PWD
复制代码
四、启动服务
- 启动
# 在 linux121 启动 exec-server
bin/start-exec.sh
# 在 linux123 启动 exec-server
bin/start-exec.sh
# 在 linux122 启动web-server
bin/start-web.sh
# 查看进程是否在,使用 jps
jps
[root@linux121 azkaban-exec-server-0.1.0-SNAPSHOT]# jps
16499 Jps
5044 QuorumPeerMain
4342 NameNode
4442 DataNode
4750 NodeManager
16479 AzkabanExecutorServer
[root@linux123 azkaban-exec-server-0.1.0-SNAPSHOT]# jps
3298 ResourceManager
3798 QuorumPeerMain
6038 Jps
3080 DataNode
3160 SecondaryNameNode
3528 NodeManager
6025 AzkabanExecutorServer
复制代码
- 激活
exec-server
在
linux122
上 运行bin/start-web.sh
,用jps
查看没有对应进程。 查看日志
[root@linux122 logs]# pwd
/opt/lagou/servers/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/logs
[root@linux122 logs]# ll
total 8
-rw-r--r-- 1 root root 7301 Sep 2 01:49 azkaban-webserver.log
at azkaban.webapp.AzkabanWebServer.class(AzkabanWebServer.java:122)
while locating azkaban.webapp.AzkabanWebServer
Caused by: azkaban.executor.ExecutorManagerException: No active executor found
at azkaban.executor.ExecutorManager.setupExecutors(ExecutorManager.java:253)
at azkaban.executor.ExecutorManager.<init>(ExecutorManager.java:131)
at azkaban.executor.ExecutorManager$$FastClassByGuice$$e1c1dfed.newInstance(<generated>)
复制代码
需要手动激活 executor
# linux121 和 linux123 均要执行
cd /opt/lagou/servers/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT
# 在 linux123 上执行
curl -G "linux123:$(<./executor.port)/executor?action=activate" && echo
# 在 linux121 上执行
curl -G "linux121:$(<./executor.port)/executor?action=activate" && echo
[root@linux123 azkaban-exec-server-0.1.0-SNAPSHOT]# curl -G "linux123:$(<./executor.port)/executor?action=activate" && echo
{"status":"success"}
[root@linux121 azkaban-exec-server-0.1.0-SNAPSHOT]# curl -G "linux121:$(<./executor.port)/executor?action=activate" && echo
{"status":"success"}
复制代码