体系架构
- WebServer :暴露Restful API,提供分发作业和调度作业功能;
- ExecServer :对WebServer 暴露 API ,提供执行作业的功能;
- MySQL :数据存储,实现Web 和 Exec之间的数据共享和部分状态的同步。
安装
Solo Server安装
Solo Server简介
这种Solo Server服务是azkaban的单机版,即是单实例,它安装简单,便于学习。他的优点如下:
- 安装简单:不需要mysql实例,它内置h2来做存储。
- 启动简单:web server和executor server都运行在相同进程中。
- 功能齐全:它包含所有azkaban的特征。你可以使用azkaban用这种通用方法并为其安装插件。
安装步骤
1)找到azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz包,上传到linux,并解压到/usr/local/
[root@my01 azkaban3.57.0]# tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /usr/local
2)更名操作
[root@my01 local]# mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo
3)配置环境变量
[root@my01 local]# vi /etc/profile
......省略.........
export AZKABAN_SOLO=/usr/local/azkaban-solo
export PATH=$AZKABAN_SOLO/bin:$PATH
[root@my01 local]# source /etc/profile
4)配置用户
[root@my01 azkaban-solo]# vi ./conf/azkaban-users.xml
在第4行添加内容如下:
<user password="admin" roles="metrics,admin" username="admin"/>
到此为止,soloserver的安装配置完成。
5)启动azkaban
[root@my01 azkaban-solo]# start-solo.sh
如果没有配置环境变量
[root@my01 azkaban-solo]# ./bin/start-solo.sh
注意:启动azkaban必须在bin的父目录,也就是家里启动。
之后还可以打开webUI
http://192.168.xx.101:8081/index
使用案例
1. azkaban的job流文件,后缀是.job
type属性 必须赋值
值有:command,java,pig
2. azkaban执行的job必须要提前打包,打包的格式必须是zip格式
3. 流文件里的书写格式:
1)一定要注意行末不要有空格
2)编码集的问题,如果在window上实在不行,可以上传到linux进行zip压缩,然后下载到windows上,再上传到azkaban上
azkaban 调度shell指令
创建shell文件test.sh
,比如一个用sqoop将数据从mysql导入到Hive的脚本如下
#!/bin/bash
sqoop import \
--connect jdbc:mysql://192.168.xx.1:3306/nshop \
--username root \
--password 123456 \
--table customer \
--hive-import \
--hive-overwrite \
--hive-table ods_nshop.ods_02_customer \
-m 1
创建文件test.job
type=command
command=/usr/bin/bash test.sh
打包两个文件到test.zip
里
打开azkaban webUI
,上传压缩包,
点击执行flow
,
执行的过程可以通过如图的details查看
查看linux的/root/下的0821.log文件
注意事项
shell命令的换行符不能用windows的,否则报错
23-12-2020 02:48:03 PST test INFO - Try --help for usage instructions.
23-12-2020 02:48:03 PST test INFO - test.sh:行3: --connect: 未找到命令
23-12-2020 02:48:03 PST test INFO - test.sh:行4: --username: 未找到命令
23-12-2020 02:48:03 PST test INFO - test.sh:行5: --password: 未找到命令
23-12-2020 02:48:03 PST test INFO - test.sh:行6: --table: 未找到命令