Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
1)Web用户界面
2)方便上传工作流
3)方便设置任务之间的关系
4)调度工作流
5)认证/授权(权限的工作)
6)能够杀死并重新启动工作流
7)模块化和可插拔的插件机制
8)项目工作区
9)工作流和任务的日志记录和审计
1. 将azkaban-solo-server-3.84.4.tar.gz拷贝到集群,并解压
tar /opt/software/azkaban-solo-server-3.84.4.tar.gz -C /opt/module
2. 启动Azkaban
/opt/module azkaban-solo-server-3.84.4/bin/start-solo.sh
3. 查看浏览器http://hadoop101:8081
用户名和密码:azkban
4. 关闭Azkaban
/opt/module azkaban-solo-server-3.84.4/bin/shutdown-solo.sh
1、上传tar包
将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包解压到这个目录下
mkdir azkaban
tar -zxvf /opt/software/azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban
tar -zxvf /opt/software/azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban
tar -zxvf /opt/software/azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban
2、设置MySQL
正常安装MySQL
登陆MySQL,创建Azkaban数据库
mysql>CREATE DATABASE azkaban
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
show variables like 'validate_password%';
mysql>set global validate_password_length=4;
mysql>set global validate_password_policy=0;
mysql>CREATE USER 'azkaban'@'%' IDENTIFIED BY '1qaz2wsx';
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
mysql>use azkaban;
mysql>source /opt/module/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql
mysql>quit;
sudo vim /etc/my.cnf
在[mysqld]下面加一行
[mysqld]
...
max_allowed_packet=1024M
sudo systemctl restart mysqld
3、设置Executor Server
Azkaban Executor Server处理工作流和作业的实际执行。
vim /opt/module/azkaban/azkaban-exec-server-3.84.4/conf/azkaban.properties
修改如下属性
...
default.timezone.id=Asia/Shanghai
...
azkaban.webserver.url=http://hadoop101:8081
...
database.type=mysql
mysql.port=3306
mysql.host=hadoop101
mysql.database=azkaban
mysql.user=azkaban
mysql.password=1qaz2wsx
mysql.numconnections=100
在最后添加
executor.metric.reports=true
executor.metric.milisecinterval.default=60000
xsync /opt/module/azkaban/azkaban-exec-server-3.84.4
cd /opt/module/azkaban/azkaban-exec-server-3.84.4
bin/start-exec.sh
如果在目录下出现executor.port文件,说明启动成功,下面激活executor
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo
如果三台机器都出现如下提示,则表示激活成功
{“status”:“success”}
4、设置Web Server
Azkaban Web Server处理项目管理,身份验证,计划和执行触发。
vim /opt/module/azkaban/azkaban-web-server-3.84.4/conf/azkaban.properties
修改如下属性
...
default.timezone.id=Asia/Shanghai
...
database.type=mysql
mysql.port=3306
mysql.host=hadoop101
mysql.database=azkaban
mysql.user=azkaban
mysql.password=1qaz2wsx
mysql.numconnections=100
...
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
vim /opt/module/azkaban/azkaban-web-server-3.84.4/conf/azkaban-users.xml
cd /opt/module/azkaban/azkaban-web-server-3.84.4
bin/start-web.sh