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
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
注意:启动或者关闭必须要进入到安装目录下进行
sh /opt/song/azkaban/solo-server/azkaban-solo-server-0.1.0-SNAPSHOT/bin/start-solo.sh
2点强调:
#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 解压到目标文件夹
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
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;#创建表
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
# 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
#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 #线程数
<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)再重新启动
我没有具体实现这种模式,需要请参考:https://blog.csdn.net/wangpei1949/article/details/79521722