Azkaban理论篇,戳:
一. 安装前准备
-
编译环境
yum -y install git
yum -y install gcc-c++ -
下载源码&&解压
wget https://github.com/azkaban/azkaban/archive/3.50.0.tar.gz
mv 3.50.0.tar.gz azkaban-3.50.0.gz
tar -zxvf azkaban-3.50.0.tar.gz -
编译
cd azkaban3.40.0
./gradlew build installDist -x test
说明:Gradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具。-x test跳过测试 -
编译生成后的安装包路径
[root@name-27 azkaban-3.50.0]# pwd
/opt/song/azkaban-3.50.0
#solo-server模式安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-solo-server/build/distributions/
azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz azkaban-solo-server-0.1.0-SNAPSHOT.zip
#two-server模式和multiple-executor模式web-server安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-web-server/build/distributions/
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz azkaban-web-server-0.1.0-SNAPSHOT.zip
#two-server模式和multiple-executor模式exec-server安装包路径
[root@name-27 azkaban-3.50.0]# ls azkaban-exec-server/build/distributions/
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz azkaban-exec-server-0.1.0-SNAPSHOT.zip
二. solo-server模式部署
- 节点规划
- 解压
tar -zxvf /opt/song/azkaban-3.50.0/azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /opt/song/azkaban/solo-server/
- 配置
vim/opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/conf/azkaban.properties
#修改时区
default.timezone.id=Asia/Shanghai
#注意端口号默认是8081,不要和node1上已被占用端口冲突.否则无法启动,且不报错。
jetty.port=8087
-
启动
cd /opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/
bin/azkaban-solo-start.sh
注意:启动或者关闭必须要进入到安装目录下进行
- 验证是否启动成功
Jps---->可以看到AzkabanSingleServer进程 (solo-server模式,exec server和webserver在同一个进程中)
----> 访问http://node1:8087
说明:默认的用户名和密码都是Azkaban,可以在azkaban-users.xml中修改。 - 关闭
sh /opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/bin/start-solo.sh
2点强调:
- 启动和停止Azkaban时一定要到安装Azkaban的bin目录下执行命令,否则找不到会报错
- 在使用的时候上传job文件,若是单个job文件压缩上传,不要放到一个文件夹里面再压缩,需要直接压缩,否则azkaban会找不到对应的job。若是多个job文件,也不要将所有的job文件放到文件夹下面压缩,而是直接压缩多个job文件
web-server模式部署
-
节点规划
-
解压web-server和executor-Server
#web-server
[root@node1 ~]# tar -zxvf /opt/song/azkaban/azkaban-3.50.0/azkaban-web-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C 解压到目标文件夹
#exec‐server
[root@node1 ~]# tar -zxvf /opt/song/azkaban/azkaban-3.50.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C 解压到目标文件夹
- 将Azkaban源码中的create-all-sql脚本拷贝到MySQL所在节点2
scp /opt/song/azkaban/azkaban-3.50.0/azkaban-db/build/install/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql root@node2:dir
- 在node2节点的Mysql中操作:创建对应的库、增加权限、创建表
mysql> CREATE DATABASE azkaban_two_server; #创建数据库
mysql> use azkaban_two_server;
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';#创建用户
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban_two_server.* to 'azkaban'@'%' WITH GRANT OPTION;#给用户授权
mysql> source create-all-sql-0.1.0-SNAPSHOT.sql;#创建表
- 生成SSL
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下:
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
[否]: y
输入的主密码
(如果和 keystore 密码相同,按回车):
再次输入新密码:
完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中的bin目录下
.如:cp keystore azkaban/webserver/bin
- 修改web-server安装配置文件azkaban.properties。
# Azkaban Personalization Settings
azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI颜色
azkaban.default.servlet.path=/index
web.resource.dir=web/ #默认根web目录
default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国
# Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类
user.manager.xml.file=conf/azkaban-users.xml #用户配置,具体配置参加下文
# Loader for projects
executor.global.properties=conf/global.properties # global配置文件所在位置
azkaban.project.dir=projects
#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql #数据库类型
mysql.port=3306 #端口号
mysql.host=1XX.XX.XX.27 #数据库连接IP
mysql.database=azkaban_two_server #数据库实例名
mysql.user=azkaban #数据库用户名
mysql.password=azkaban #数据库密码
mysql.numconnections=100 #最大连接数
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25 #最大线程数
jetty.port=8087 #Jetty SSL端口
jetty.keystore=keystore #SSL文件名
jetty.password=123456 #SSL文件密码
jetty.keypassword=123456 #Jetty主密码 与 keystore文件相同
jetty.truststore=keystore #SSL文件名
jetty.trustpassword=123456 # SSL文件密码
# Azkaban Executor settings
executor.port=12321
# JMX stats
jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
- 修改executor安装目录配置文件azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes #jobtype 插件所在位置
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
#数据库设置
database.type=mysql
mysql.port=3306
mysql.host=1XX.XXX.XXX.27
mysql.database=azkaban_two_server
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
# 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321#端口号,和webserver配置文件保持一致
executor.flow.threads=30 #线程数
- 用户配置
进入web-server安装目录conf目录下修改azkaban-Server.xml,增加管理员用户
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
#添加下面这行
<user username="admin" password="admin" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
-
启动
(1)启动web-server:进入web-server的安装目录下执行:bin/azkaban-server-start.sh
(2)启动executor:进入executor的安装目录下执行:bin/azkaban-executor-start.sh -
使用JPS查看
(1)有AzkabanExecutorServer、AzkabanWebServer两个进程说明各自都启动成功
(2)如果未启动成功,在启动目录下会生成log文件,在log文件查找错误原因 -
可能会遇到的错误示例:cant find … /log4j…file
解决方法:
(1)find azkaban-3.50.0 -name ‘log4j*’
(2)cp azkaban-3.50.0/azkaban-web-server/src/test/resources/log4j.properties azkaban-web-server-0.1.0-SNAPSHOT/conf/
(3)再重新启动
四. 分布式multi-executor模式
我没有具体实现这种模式,需要请参考:https://blog.csdn.net/wangpei1949/article/details/79521722