Azkaban3.84.4安装并修改默认时区修改为Asia/Shanghai
一、Linux系统时区设置
1、查看Linux系统时区
timedatectl | grep "Time zone"
2、设置时区为Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
3、修改配置文件
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4、将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
timedatectl set-local-rtc 1
5、强制将时区写入bios
clock -w
6、查看系统时区(+0800 为东八区)
date -R
二、Azkaban3.84.4版本时区设置
1、下载Azkaban3.84.4源码
https://codeload.github.com/azkaban/azkaban/zip/refs/tags/3.84.4
2、解压azkaban-3.84.4.zip
mkdir -p /opt/soft/azakaban3.84.4
unzip -o azkaban-3.84.4.zip -d /opt/soft/azakaban3.84.4
3、进入源码目录
cd /opt/soft/azakaban3.84.4
4、修改schedulepanel.vm文件
vim azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/schedulepanel.vm
将第106行中的
<input type="text" id="cron-tz" value="UTC" oninput="updateOutput()"
改为:
<input type="text" id="cron-tz" value="Asia/Shanghai" oninput="updateOutput()"
说明:在3.84.4版本,定时器页面默认时区为UTC,而系统的时区设置是Asia/Shanghai,故每次都要手动修改时区,因此我们这里选择修改代码,这样就不用每次都手动修改了
4、编译
./gradlew build -x test
编译成功后在/opt/soft/azakaban3.84.4/azkaban-web-server/build/distributions目录下找到azkaban-web-server-0.1.0-SNAPSHOT.tar.gz文件
在/opt/soft/azakaban3.84.4/azkaban-db/build/distributions目录下找到azkaban-db-0.1.0-SNAPSHOT.tar.gz
在/opt/soft/azakaban3.84.4/azkaban-exec-server/build/distributions目录下找到azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
5、上传安装包至安装节点的/opt/soft目录
将azkaban-db-0.1.0-SNAPSHOT.tar.gz,azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz,azkaban-web-server-0.1.0-SNAPSHOT.tar.gz上传到/opt/soft
6、修改安装包名称
cd /opt/soft mv azkaban-db-0.1.0-SNAPSHOT.tar.gz azkaban-db-3.84.4.tar.gz mv azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz azkaban-exec-server-3.84.4.tar.gz mv azkaban-web-server-0.1.0-SNAPSHOT.tar.gz azkaban-web-server-3.84.4.tar.gz
7、新建/opt/module/azkaban目录
mkdir -p /opt/module/azkaban
8、解压azkaban-db-3.84.4.tar.gz、 azkaban-exec-server-3.84.4.tar.gz和azkaban-web-server-3.84.4.tar.gz到/opt/module/azkaban目录下
tar -zxvf /opt/soft/azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban/ tar -zxvf /opt/soft/azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban/ tar -zxvf /opt/soft/azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban/
9、进入到/opt/module/azkaban目录,依次修改名称
cd /opt/module/azkaban/ mv azkaban-exec-server--0.1.0-SNAPSHOT/ azkaban-exec mv azkaban-web-server--0.1.0-SNAPSHOT/ azkaban-web
mv zkaban-db-0.1.0-SNAPSHOT/ zkaban-db
10、连接MySQL
(1)安装mysql8.0客户端
下载地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-community-client-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm --force --nodeps
(2)登陆MySQL,创建Azkaban数据库
mysql -uroot -p
create database azkaban;
#创建Azkaban表,并执行create-all-sql-3.84.4.sql use azkaban; source /opt/module/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql; #创建Azkaban用户,任何主机都可以访问Azkaban,密码是azkaban123456 CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban123456'; #赋予Azkaban用户增删改查权限 grant select,insert,update,delete on azkaban.*to 'azkaban'@'%' with grant option; flush privileges; quit;
(3)将/opt/module/azkaban/azkaban-web/lib目录中的mysql-connector-java替换为8.0版本
下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.jar
mv /opt/module/azkaban/azkaban-web/lib/mysql-connector-java-5.1.28.jar /opt/module/azkaban/azkaban-web/lib/mysql-connector-java-5.1.28.jar.bck
(4)将/opt/module/azkaban/azkaban-exec/lib目录中的mysql-connector-java替换为8.0版本
mv /opt/module/azkaban/azkaban-exec/lib/mysql-connector-java-5.1.28.jar /opt/module/azkaban/azkaban-exec/lib/mysql-connector-java-5.1.28.jar.bck
11、配置Executor Server
(1)编辑azkaban.properties
vi /opt/module/azkaban/azkaban-exec/conf/azkaban.properties
#修改如下属性 default.timezone.id=Asia/Shanghai azkaban.webserver.url=http://127.0.0.1:8081 mysql.host=127.0.0.1 mysql.database=azkaban mysql.user=azkaban mysql.password=azkaban123456 #在最后添加 executor.port=12321
(2)同步azkaban-exec到所有节点
xsync_all /opt/module/azkaban/azkaban-exec
(3)必须进入到/opt/module/azkaban/azkaban-exec路径,启动executor server
cd /opt/module/azkaban/azkaban-exec #如果在/opt/module/azkaban/azkaban-exec目录下出现executor.port文件,说明启动成功 bin/start-exec.sh
(4)激活executor
curl -G "主机名:12321/executor?action=activate" && echo 如master21节点: curl -G "192.168.100.101:12321/executor?action=activate" && echo 如果机器都出现如下提示,则表示激活成功:{"status":"success"}
12、配置Web Server,Azkaban Web Server处理项目管理,身份验证,计划和执行触发。
(1)编辑azkaban.properties
vi /opt/module/azkaban/azkaban-web/conf/azkaban.properties
#修改如下属性 default.timezone.id=Asia/Shanghai user.manager.xml.file=/opt/module/azkaban/azkaban-web/conf/azkaban-users.xml executor.global.properties=/opt/module/azkaban/azkaban-web/conf/global.properties mysql.host=127.0.0.1 mysql.database=azkaban mysql.user=azkaban mysql.password=azkaban123456 #StaticRemainingFlowSize:正在排队的任务数 #CpuStatus:CPU占用情况 #MinimumFreeMemory:内存占用情况,测试环境下,必须将MinimumFreeMemory删除掉,否则它会认为集群资源不够,不执行 #azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
(2)修改azkaban-users.xml文件,添加abc用户
vi /opt/module/azkaban/azkaban-web/conf/azkaban-users.xml
<azkaban-users> <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/> <user password="metrics" roles="metrics" username="metrics"/> <user groups="azkaban" password="azkaban123456" roles="metrics,admin" username="abc"/> <role name="admin" permissions="ADMIN"/> <role name="metrics" permissions="METRICS"/> </azkaban-users>
(3)必须进入到该节点的/opt/module/azkaban/azkaban-web路径,启动web server
cd /opt/module/azkaban/azkaban-web
bin/start-web.sh
(4)访问 web页面 ,并用abc用户登录
13、编写AzkabanWebServer启动/停止脚本
cd /opt/module/shell
vi azkabanWebServer.sh
#!/bin/bash #azkaban的一键启动脚本,只接收单个start或stop参数 if(($#!=1)) then echo 请输入单个start或stop参数! exit fi #对传入的单个参数进行校验,且执行相应的启动和停止命令 if [ $1 = start ] then #启动web-server cd /opt/module/azkaban/azkaban-web bin/start-web.sh elif [ $1 = stop ] then cd /opt/module/azkaban/azkaban-web bin/shutdown-web.sh else echo 请输入单个start或stop参数! fi
14、添加可执行权限
chmod +x azkabanWebServer.sh
15、启动/停止AzkabanWebServer
azkabanWebServer.sh start
azkabanWebServer.sh stop
16、编写AzkabanExecutorServer启动/停止脚本
cd /opt/module/shell
vi azkabanExecutorServer.sh
#!/bin/bash #azkaban的一键启动脚本,只接收单个start或stop参数 if(($#!=1)) then echo 请输入单个start或stop参数! exit fi #对传入的单个参数进行校验,且执行相应的启动和停止命令 if [ $1 = start ] then #启动executor xcall_all "cd /opt/module/azkaban/azkaban-exec; bin/start-exec.sh " sleep 5s #激活executor for i in 192.168.xxx.xxx 192.168.xxx.xxx 192.168.xxx.xxx do curl -G $i:12321/executor?action=activate && echo done elif [ $1 = stop ] then xcall_all /opt/module/azkaban/azkaban-exec/bin/shutdown-exec.sh else echo 请输入单个start或stop参数! fi
17、添加可执行权限
chmod +x azkabanExecutorServer.sh
18、分发
xsync_all /opt/module/shell/azkabanExecutorServer.sh
19、启动/停止azkabanExecutorServer
azkabanExecutorServer.sh start
azkabanExecutorServer.sh stop
20、注册邮箱
(1)申请注册一个邮箱
(2)点击设置--->账户
(3)开启SMTP服务
(4)一定要记住授权码
21、Azkaban默认支持通过邮件对失败的任务进行报警,配置方法如下:
(1)在azkaban-web节点上,编辑/opt/module/azkaban/azkaban-web/conf/azkaban.properties,修改如下内容:
vim /opt/module/azkaban/azkaban-web/conf/azkaban.properties
#添加如下内容: #这里设置邮件发送服务器,需要 申请邮箱,开通stmp服务 mail.sender=666666@qq.com mail.host=smtp.qq.com mail.user=666666@qq.com mail.password=用邮箱的授权码 #Job执行成功发往的邮箱 job.failure.email=888888@qq.com #Job执行失败发往的邮箱 job.success.email=888888@qq.com
(2)保存并重启web-server
bin/shutdown-web.sh
bin/start-web.sh