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用户登录

  http://127.0.0.1:8081

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

 

posted @ 2023-02-07 16:35  宜家数据小哥  阅读(334)  评论(0编辑  收藏  举报