有勇气的牛排博客

工作流调度系统 Azkaban介绍与安装(一)

有勇气的牛排 467 大数据 2022-12-25 15:16:29

前言

1、为什么要用工作流调度系统

(1)一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序、java程序、MapReduce程序、Hive脚本等。
(2)各个单元之间存在时间先后及前后依赖关系
(3)为了很好地组织这样的复杂执行计划,需要一个工作流调度系统来执行。

2、常见的工作流调度系统

(1)简单任务调度:直接只用Linux的Crnotab。
(2)复杂任务调度:Ooize、Azkaban、Airflow、DolphinScheduler等

1 集群规划

192.168.56.20: exec、web
192.168.56.20:exec
192.168.56.20:exec

准备文件

mkdir -p /usr/local/azkaban cd /usr/local/azkaban rz
tar -zxvf azkaban-db-3.84.4.tar.gz tar -zxvf azkaban-exec-server-3.84.4.tar.gz tar -zxvf azkaban-web-server-3.84.4.tar.gz

2 配置 MySQL

1、安装

docker run -d \ -p 3322:3306 \ -v /usr/local/docker/mysql-api/data:/etc/mysql/conf.d \ -v /usr/local/docker/mysql-api/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456* \ --name azkaban mysql:5.7

2、启动

mysql -u root -p root

3、创建 azkaban 数据库,并赋予权限

create database azkaban;

配置允许简单密码

# 设置密码有效程度 4 为及以上 set global validate_password_length=4; # 设置密码策略最低级别 set global validate_password_policy=0;

创建 azkaban用户,任何主机都可以访问 Azkaban,密码是000000

create user 'azkaban'@'%' identified by'000000';

赋予 azkaban用户 增删改查权限

grant select,insert,update,delete on azkaban.* to 'azkaban'@'%' with grant option;

4、创建 azkaban表

use azkaban; source /usr/local/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql

5、更改 MySql 包大小,防止 Azkaban 链接 MySql阻塞

vim /etc/my.cnf

[mysqld]下面家以上 max_allowed_pocked=1024M

[mysqld]
# 默认1M
max_allowed_packet=1024M

6、重启 MySQL

systemctl restart mysqld

3 配置 Executor Server

3.1 修改 azkaban.properties

vim /usr/local/azkaban/azkaban-exec-server-3.84.4/conf/azkaban.properties

修改如下内容

default.timezone.id=Asia/Shanghai azkaban.webserver.url=http://192.168.56.20:8085 mysql.host=192.168.56.20 mysql.password=root # 指定端口 executor.port=12321

分发
xsync

scp -r /usr/local/azkaban root@slave1:/usr/local scp -r /usr/local/azkaban root@slave2:/usr/local

3.2 启动

所有机器

cd /usr/local/azkaban/azkaban-exec-server-3.84.4 ./bin/start-exec.sh

关闭

shutdown-exec.sh

3.3 激活

所有机器

curl -G "192.168.56.20:12321/executor?action=activate" && echo curl -G "192.168.56.21:12321/executor?action=activate" && echo curl -G "192.168.56.22:12321/executor?action=activate" && echo

4 配置 Web Server

Azkaban Web Server 处理项目管理,身份验证,计划和执行触发。

4.1 修改 azkaban.properties

cd /usr/local/azkaban/azkaban-web-server-3.84.4 vim /usr/local/azkaban/azkaban-web-server-3.84.4/conf/azkaban.properties

修改如下属性

default.timezone.id=Asia/Shanghai # Web Server端口 jetty.port=8085 mysql.host=master mysql.password=000000 azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

4.2 修改azkaban-users.xml文件,添加 atguigu 用户

用户/权利管理文件

vim ./confg/azkaban-users.xml
<azkaban-users> <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/> <user password="metrics" roles="metrics" username="metrics"/> <user password="123456" roles="admin" username="charles"/> <role name="admin" permissions="ADMIN"/> <role name="metrics" permissions="METRICS"/> </azkaban-users>

4.3 启动

cd /usr/local/azkaban/azkaban-web-server-3.84.4 bin/start-web.sh

关闭

bin/shutdown-web.sh

访问:http://192.168.56.20:8085
账号:charles
密码:123456
image.png

https://www.bilibili.com/video/BV1y54y18713


留言

专栏
文章
加入群聊