部署Azkaban任务调度器demo

时间:2022-07-24 20:03:45

今天在虚拟机上面配置了一个Azkaban的任务调度器,这是由Linkedin公司开源的一个大批量工作流任务调度器(任务量不大的话crontab和hadoop的jobController 结合起来也可以实现任务的调度);

下面我们来部署下Azkaban:

1.需要下载三个包
azkaban-web-server-2.5.0.tar.gz
azkaban-executor-server-2.5.0.tar.gz
azkaban-sql-script-2.5.0.tar.gz

2.解压三个包

tar -xzvf azkaban-executor-server-2.5.0.tar.gz
tar -xzvf azkaban-sql-script-2.5.0.tar.gz
tar -xzvf azkaban-web-server-2.5.0.tar.gz

3.需要配置mysql数据库

--1.进入mysql
mysql -uroot -p

--创建azkaban库
create database azkaban;

--赋予权限
create user 'azkaban'@'%' identified by 'azkaban';
grant all on *.* to 'azkaban'@'%' identified by 'azkaban' with grant option;


--flush
flush privileges;

--切换用户到azkaban
exit
mysql -uazkaban -pazkaban

--在azkaban库里面执行保存azkaban一些相关元数据信息的sql脚本
use azkaban;
source /usr/java/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql

flush privileges;切记要在赋权之后执行,不flush会导致赋权无效。导致后面启动azkaban的web容器会报访问mysql的azkaban库没有权限的错

4.配置azkaban web
首先进入azkaban的web目录并且创建一个key文件夹

cd /usr/java/azkaban/azkaban-web-2.5.0/web
mkdir key

然后进入key文件夹生成SSL 证书

keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560

keytool -export -alias jetty-azkaban -keystore keystore -rfc -file lijieAzkaban.cer

keytool -import -alias certificatekey -file lijieAzkaban.cer -keystore truststore

上面命令执行会让你输入密码,这里全部使用azkaban,也会让你输入你的名字等信息这里我全部用的lijie(ps:你可以自己进行设置,这里只是为了安装方便)

配置conf/azkaban.properties

#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=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
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.

# Azkaban Execeds=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=web/key/keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=web/key/truststore
jetty.trustpassword=azkaban

executor.port=12321

配置完成启动jetty容器:

./bin/azkaban-web-start.sh

5.配置azkaban-executor

编辑conf/azkaban.properties配置文件

#Azkaban
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

启动executor

./bin/azkaban-executor-start.sh

还可以安装很多的插件,这个网上也有很多例子。
到这里azkaban部署完成,用浏览器输入https://192.168.80.123:8443(我部署的机器IP是192.168.80.123),账号密码都是azkaban:
部署Azkaban任务调度器demo

主界面:
部署Azkaban任务调度器demo