【Azkaban】安装multiple-executor

这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战

一、准备工作

节点划分如下:
2020-09-0200:48.png

(1)编译

已经得到编译过的包,这步可以越过。

选用 azkaban3.51.0 这个版本自己进行重新编译,编译完成之后得到需要的安装包进行安装。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bash复制代码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)上传编译后的安装文件

1
2
3
bash复制代码# 在 linux122 节点创建目录

mkdir /opt/lagou/servers/azkaban

(3)安装需要软件

  1. Azkaban Web 服务安装包

azkaban-web-server-0.1.0-SNAPSHOT.tar.gz

  1. Azkaban 执行服务安装包

azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz

  1. sql 脚本

azkaban-db-0.1.0-SNAPSHOT.tar.gz

(4)数据库准备

linux123 节点,运行如下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bash复制代码# 解压数据库脚本
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;

验证一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
bash复制代码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 节点下

  1. 解压 azkaban-web-server
1
2
3
4
bash复制代码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/
  1. 生成 ssl 证书
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bash复制代码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
其他信息,直接回车即可。
2020-09-0201:11.png

  1. 修改 azkaban-web-server 的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
bash复制代码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
  1. 添加属性
1
2
3
4
5
6
7
8
9
10
11
12
13
bash复制代码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 节点上操作

  1. 上传 azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz 包到 linux123 节点上
1
2
3
4
bash复制代码

# 解压缩
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /opt/lagou/servers/azkaban/
  1. 修改 azkaban-exec-server 的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bash复制代码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
  1. 分发 exec-serverlinux121 节点
1
2
3
bash复制代码[root@linux123 servers]# pwd
/opt/lagou/servers
[root@linux123 servers]# scp -r azkaban linux121:$PWD

四、启动服务

  1. 启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
bash复制代码# 在 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
  1. 激活 exec-server

linux122 上 运行bin/start-web.sh,用 jps 查看没有对应进程。
查看日志

1
2
3
4
5
6
7
8
9
10
11
12
13
bash复制代码[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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bash复制代码# 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"}

访问 :https://linux122:8443

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%