03-azkaban安装部署

00-前言

初步撰写了azkaban  Multi Executor Server 模式的部署说明,只是在单一节点上同时部署了web以及excutor。多excutor的情况可能会稍有不一样,待完善

01-环境介绍

1.基础环境介绍

CentOS7

azkaban 3.81.0

jdk 8

注意:需要提前在集群所有节点配置好NTP服务

可以单独创建一个linux用户azkaban专门用来安装azkaban

2.安装模式

Multi Executor Server

02-配置元数据库

1.在MySQL中创建数据库

1 mysql> CREATE DATABASE azkaban;

2.创建azkaban用户并赋权

1 # Example database creation command. The user name doesn't need to be 'azkaban'
2 mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
3 # give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
4 mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to '<username>'@'%' WITH GRANT OPTION;

3.执行建表语句

注意:脚本在azkaban-db-0.1.0-SNAPSHOT.tar.gz 中

1 mysql > source create-all-sql-0.1.0-SNAPSHOT.sql

4.修改MySQL配置

1 [mysqld]
2 ...
3 max_allowed_packet=1024M

03-安装并配置Azkaban Web Server

1.解压tar包

2.配置SSL【如果需要限定使用HTTPS访问,则配置】

azkaban web可以使用HTTPS,也可以使用HTTP的方式访问

1)说明

Keytool是java数据证书的管理工具,使用户能够管理自己的公/私钥对以及相关证书。系统一般自带,没有使用yum通过系统光盘安装即可

-keystore 指定密钥库的名称以及位置(产生的各类信息将存在keystore文件中)

-genkey(或者genkeypair) 生成密钥对

-alias 为生成的密钥指定别名,如果没有默认是mykey

-keyalg 指定密钥算法 RSA/DSA 默认是DSA

2)生成密钥对和证书

在web server所在的节点执行如下命令,生成密钥对和证书

1 keytool -genkey -keystore /opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore -alias jetty  -keyalg RSA 

设置密码,以及输入一些没什么用的公司名称等信息

会在指定的目录下生成keystore

 

 可以通过如下命令查看keystore中的信息

1 keytool -list -keystore /opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore

3.修改配置文件

1)配置azkaban.properties

 1 # Azkaban Personalization Settings
 2 azkaban.name=Test
 3 azkaban.label=My Local Azkaban
 4 azkaban.color=#FF3601
 5 azkaban.default.servlet.path=/index
 6 #需要修改为绝对路径,该目录是存储web的所有内容
 7 #这里最好是配置系统环境变量,然后使用环境变量来配置相关路径
 8 #web.resource.dir=web/
 9 web.resource.dir=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/web
10 #需要修改时区,默认是美国,需要改成亚洲/上海
11 #default.timezone.id=America/Los_Angeles
12 default.timezone.id=Asia/Shanghai
13 
14 # Azkaban UserManager class
15 #这个是不安全的用户管理类,生产环境需要使用其他第三方的用户管理类
16 user.manager.class=azkaban.user.XmlUserManager
17 #改为绝对路径
18 user.manager.xml.file=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/azkaban-users.xml
19 
20 # Loader for projects
21 #改为绝对路径
22 executor.global.properties=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/conf/global.properties
23 azkaban.project.dir=projects
24 
25 # Velocity dev mode
26 velocity.dev.mode=false
27 
28 # Azkaban Jetty server properties.
29 #我这里即配置了HTTP连接的以及HTTPS连接的参数,通过jetty.use.ssl设置是否使用HTTPS访问当时。可以不启用。
30 jetty.use.ssl=false
31 jetty.maxThreads=25
32 jetty.port=8081
33 jetty.keystore=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore
34 #keystore库的密码
35 jetty.password=azkaban
36 #密钥对的密码
37 jetty.keypassword=azkaban
38 #这个是用来服务器判断客户端是否可以被信任
39 #暂时配置成服务器的keystore也可以
40 jetty.truststore=/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT/keystore
41 jetty.trustpassword=azkaban
42 jetty.ssl.port=8443
43 
44 # Azkaban Executor settings
45 # mail settings
46 #关于邮件提醒的一些配置
47 mail.sender=
48 mail.host=
49 # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
50 # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
51 # when this parameters set then these parameters are used to generate email links.
52 # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
53 # azkaban.webserver.external_hostname=myazkabanhost.com
54 # azkaban.webserver.external_ssl_port=443
55 # azkaban.webserver.external_port=8081
56 #关于邮件提醒的一些配置
57 job.failure.email=
58 job.success.email=
59 lockdown.create.projects=false
60 cache.directory=cache
61 # JMX stats
62 jetty.connector.stats=true
63 executor.connector.stats=true
64 # Azkaban mysql settings by default. Users should configure their own username and password.
65 
66 #修改数据库信息
67 database.type=mysql
68 mysql.port=3306
69 mysql.host=132.35.231.131
70 mysql.database=azkaban
71 mysql.user=azkaban
72 mysql.password=azkaban
73 mysql.numconnections=100
74 
75 #Multiple Executor
76 azkaban.use.multiple.executors=true
77 azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
78 azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
79 azkaban.executorselector.comparator.Memory=1
80 azkaban.executorselector.comparator.LastDispatched=1
81 azkaban.executorselector.comparator.CpuUsage=1

2)配置azkaban-users.xml

 配置用户及权限

1 <azkaban-users>
2   <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
3   <user password="metrics" roles="metrics" username="metrics"/>
4 
5   <role name="admin" permissions="ADMIN"/>
6   <role name="metrics" permissions="METRICS"/>
7 </azkaban-users>
View Code

 这里提供了一个默认的用户azkaban

04-安装并配置Azkaban Executor Server

1.解压tar包

2.修改配置文件

1)修改azkaban.properties

 1 # Azkaban Personalization Settings
 2 #azkaban.name=Test
 3 #azkaban.label=My Local Azkaban
 4 #azkaban.color=#FF3601
 5 #azkaban.default.servlet.path=/index
 6 #web.resource.dir=web/
 7 #**************修改时区******************
 8 default.timezone.id=Asia/Shanghai
 9 # Azkaban UserManager class
10 #user.manager.class=azkaban.user.XmlUserManager
11 #user.manager.xml.file=conf/azkaban-users.xml
12 
13 # Loader for projects
14 #**************修改为绝对路径**************
15 executor.global.properties=/home/azkaban/opt/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT/conf/global.properties
16 azkaban.project.dir=projects
17 
18 # Velocity dev mode
19 #velocity.dev.mode=false
20 # Azkaban Jetty server properties.
21 #jetty.use.ssl=false
22 #jetty.maxThreads=25
23 #jetty.port=8081
24 
25 # Where the Azkaban web server is located
26 #azkaban.webserver.url=http://localhost:8081
27 # mail settings
28 #mail.sender=
29 #mail.host=
30 # User facing web server configurations used to construct the user facing server URLs. They are useful when there is a reverse proxy between Azkaban web servers and users.
31 # enduser -> myazkabanhost:443 -> proxy -> localhost:8081
32 # when this parameters set then these parameters are used to generate email links.
33 # if these parameters are not set then jetty.hostname, and jetty.port(if ssl configured jetty.ssl.port) are used.
34 # azkaban.webserver.external_hostname=myazkabanhost.com
35 # azkaban.webserver.external_ssl_port=443
36 # azkaban.webserver.external_port=8081
37 #job.failure.email=
38 #job.success.email=
39 #lockdown.create.projects=false
40 #cache.directory=cache
41 # JMX stats
42 #jetty.connector.stats=true
43 #executor.connector.stats=true
44 # Azkaban plugin settings
45 #**************建议也修改为绝对路径**************
46 azkaban.jobtype.plugin.dir=plugins/jobtypes
47 # Azkaban mysql settings by default. Users should configure their own username and password.
48 #**************配置数据库连接**************
49 database.type=mysql
50 mysql.port=3306
51 mysql.host=132.35.231.131
52 mysql.database=azkaban
53 mysql.user=azkaban
54 mysql.password=azkaban
55 mysql.numconnections=100
56 # Azkaban Executor settings
57 #**************配置excutor的一些参数**************
58 executor.maxThreads=50
59 executor.flow.threads=30
60 executor.port=12321

05-启动web以及excutor

1.注意

1)web与excutor是通过元数据库里存储的信息来相互识别的,不需要在配置文件里配置对应的IP

2)需要先启动excutor并且在元数据库中,将excutor状态设置为活动

 2.启动excutor

1)一定要在/home/azkaban/opt/azkaban/azkaban-exec-server-0.1.0-SNAPSHOT目录下执行 ./bin/start-exec.sh

会在当前目录生成启动日志

 2)一定要在/home/azkaban/opt/azkaban/azkaban-web-server-0.1.0-SNAPSHOT 目录下执行 ./bin/start-web.sh

会在当前目录生成启动日志

06-可能遇到的问题

1.启动excutor或者web,启动日志中提示 can' t start up :  not enough memory

原因:主机环境中Java版本过低

解决方案:将当前用户的Java替换为1.8或者以上的版本即可

2.启动web时提示没有活动的executor

azkaban.executor.ExecutorManagerException: No active executors found

 原因:元数据库中,没有active =1 的executor记录

解决方案:手动在元数据库中修改executor状态

原文地址:https://www.cnblogs.com/zhaoxj127/p/12067350.html