Azkaban安装
将Azkaban安装包上传到集群中
db:azkaban需要依赖mysql,db里就是有关的建表语句
exec:azkaban的exec端
web:azkaban的server端
解压三个tar包到/opt/module/azkaban
tar -zxvf azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban/
tar -zxvf azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban/
tar -zxvf azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban/
配置MySQL
首先要确定安装好了MySQL
登录MySQL
mysql -uroot -p000000;
创建azkaban数据库
create database azkaban;
常见azkaban用户,并赋予权限
create user 'azkaban'@'%' IDENTIFIED BY '000000';
赋予azkaban增删改查权限
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
创建azkaban表
>use azkaban;
>source /opt/module/azkaban/azkaban-db-3.84.4/create-all-sql-3.84.4.sql
更改 MySQL 包大小;防止 Azkaban 连接 MySQL 阻塞
sudo vim /etc/my.cnf
在[mysqld]下新增
[mysqld]
max_allowed_packet=1024M
重启mysql
sudo systemctl restart mysqld
配置 Executor Server
编辑 azkaban.properties
vim /opt/module/azkaban/azkaban-exec/conf/azkaban.properties
修改内容
#... default.timezone.id=Asia/Shanghai #... azkaban.webserver.url=http://hadoop102:8081 executor.port=12321 mysql.host=hadoop102 mysql.password=000000
同步 azkaban-exec 到所有节点
xsync /opt/module/azkaban/azkaban-exec
启动azkaban-exec
必须进入到/opt/module/azkaban/azkaban-exec 路径, 分别在三台机器上, 启动executor server
然后输入启动命令
bin/start-exec.sh
注意:如果在/opt/module/azkaban/azkaban-exec 目录下出现 executor.port 文件,说明启动成功
或者是在mysql中出现executors表,也证明启动成功
激活 executor
curl -G "hadoop102:12321/executor?action=activate" && echo
再查看一下mysql中的executors表
配置 Web Server
编辑 azkaban.properties ,修改属性
default.timezone.id=Asia/Shanghai mysql.host=hadoop102 mysql.password=000000 azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus
说明:
StaticRemainingFlowSize:正在排队的任务数
CpuStatus:CPU 占用情况
MinimumFreeMemory :内存占用情况 。 测试环境, 必须MinimumFreeMemory 删除掉, 否则它会认为集群资源不够,不执行
原来的设置:
修改后的设置:
修改 azkaban-users.xml 文件,添加 lnnu 用户
<user password="lnnu" roles="admin" username="lnnu"/>
启动 web server
注意:
必须进入到 hadoop102 的/opt/module/azkaban/azkaban-web 路径
bin/start-web.sh
验证
浏览器访问网址http://hadoop102:8081
出现以上页面就是成功
使用在azkaban-user.xml文件中配置的用户登录
Hello World案例
azkaban的使用需要两个文件:basic.flow 文件和azkaban.project 文件
azkaban.project文件就是版本配置说明
basic.flow文件就是要编写的调度
azkaban.project文件内容
azkaban-flow-version: 2.0
basic.flow文件
azkaban的basic.flow文件采用的编写规范是yaml
编写内容
nodes: - name: jobA type: command config: command: echo "Hello World"
Name:job 名称 ,名称jobA
Type:job 类型。command 表示你要执行作业的方式为命令
Config:job 配置 ,一个命令,输出Hello World
然后将两个文件压缩到一个.zip文件里
执行azkaban调度任务
到web页面,点击右上角create project
上传压缩的zip包
在上传的时候,会自动校验,上传成功说明文件没有问题
点击execute flow执行任务
就会看到了工作流程图
schedule按钮就是配置定时规则,比如要在何时进行执行
右下角的execute就是直接执行
还可以点击Job List查看任务的执行日志
点击log可以看到执行的具体情况,以及输出的Hello World