azkaban调度
1、概述
azkaban是一套调度系统,常用大数据作业调度。azkaban包括web和executor两套程序,web主要完成展示和交互,executor上完成调度和作业提交执行。
2、安装
略
3、启动
3.1 启动web程序
$>/soft/azkaban/web/bin/azkaban-web-start.sh
3.2 执行executor程序
$>/soft/azkaban-exec/bin/azkaban-executor-start.sh
4、登录webui
http://s101:8081
5、登录界面
6、创建工程
6.1 点击创建项目按钮
6.2 输入项目信息
6.3 查看创建项目
7、创建job文件和依赖关系
7.1 编写job文件
job文件以job作为扩展名,job中涉及的sh脚本需要保证在executor节点上存在,实际执行时都是由executor在本机上执行特定的shell脚本。
7.1.1 加载数据到原生表job
[1_load_data_to_hive_raw_logs.job],该job是第一个job,没有依赖。
type=commandcommand=sh /home/centos/umeng/load_data_to_hive_raw_logs.sh
##### 7.1.2 叉分startuplogs并转储job
[2_1_fork_startuplogs.job]
type=commandcommand=sh /home/centos/umeng/fork_logs.sh fork_startuplogs.sql forkstartuplogsdependencies=1_load_data_to_hive_raw_logs
7.1.3 叉分eventlogs并转储job
[2_2_fork_eventlogs.job]
type=commandcommand=sh /home/centos/umeng/fork_logs.sh fork_eventlogs.sql forkeventlogsdependencies=1_load_data_to_hive_raw_logs
7.1.4 叉分errorlogs并转储job
[2_3_fork_errorlogs.job]
type=commandcommand=sh /home/centos/umeng/fork_logs.sh fork_errorlogs.sql forkerrorlogsdependencies=1_load_data_to_hive_raw_logs
7.1.5 叉分usagelogs并转储
[2_4_fork_usagelogs.job]
type=commandcommand=sh /home/centos/umeng/fork_logs.sh fork_usagelogs.sql forkusagelogsdependencies=1_load_data_to_hive_raw_logs
7.1.6 job 叉分pagelogs并转储job
[2_5_fork_pagelogs.job]
type=commandcommand=sh /home/centos/umeng/fork_logs.sh fork_pagelogs.sql forkpagelogsdependencies=1_load_data_to_hive_raw_logs
7.1.7 编写收尾job
job之间可以指定依赖,多个依赖使用,分割。
[3_end.job]
type=noopdependencies=2_1_fork_startuplogs,2_2_fork_eventlogs,2_3_fork_errorlogs,2_4_fork_usagelogs,2_5_fork_pagelogs
7.1.8 总结
以上共生成7个job文件,如下图所示:
8、将所有job打成一个zip文件
8.1 安装zip命令
centos 7默认没有集成zip命令,需要单独安装。
#安装zip命令$>sudo yum install -y zip
8.2 打包job文件到一个zip中
$>cd /home/centos/umeng/job#将当前所有文件打成1.zip文件$>zip 1.zip *
8.3 1.zip文件内容如下
9、上传zip文件
9.1 点击上传按钮
9.2 选中zip文件
9.3 查看上传结果
9.4 展开job,查看依赖关系
10、job的执行与调度
job在上传之后,可以单独执行某个job,带依赖关系也可以不带依赖关系。执行通常用来测试,测试通过后就可以进行调度作业。