目录
引言
一个完整的系统通常都是由大量任务单元组成:Shell脚本程序、Java程序、MapReduce程序、Hive脚本等。任务单元之间存在时间先后及前后依赖关系,为了组织复杂执行计划,需要工作调度系统来调度执行。
常见的流程调度系统
简单的任务调度:直接使用Linux的Crontab来定义;
复杂的任务调度:现成的开源调度系统Ooize、Azkaban、Airflow、DolphinScheduler等。
Azkaban与Oozie对比
Ooize是一个重量级的任务调度系统,功能全面,但配置使用更复杂;Azkaban是轻量级调度器。
Azkaban入门
安装
Azkaban的安装部署_一个人的牛牛的博客-CSDN博客_azkaban安装部署
案例实操
案例一:基础案例hello world
1.新建azkaban.project文件(文件名不重要,后缀一定要是project·),内容如下:
azkaban-flow-version: 2.0
注:内容含义为采用flow-API(版本为2.0)方式解析flow文件。
2.新建first.flow文件(文件名不重要,后缀一定要是flow),内容如下:
nodes:
- name: jobA
type: command
config:
command: echo "Hello World"
解释:
(1)name:job名称;
(2)type:job类型;
(3)command:执行job的方式为命令;
(4)config:job配置;
注:azkaban.project和first.flow保存时注意类型要选择为All type (*.*)。
yaml基本语法
1)大小写敏感;
2)使用缩进表示层级关系;
3)缩进不允许使用tab,只允许空格;
4)缩进的空格数不重要,只要相同层级的元素左对齐即可
5)'#'表示注释
3.将azkaban.project和first.flow压缩,以zip格式压缩,文件名一定要是英文
4.开启azkaban
(1)先开启executor,进入executor目录运行
bin/start-exec.sh
(2)再开启web server,进入web server目录
bin/start-web.sh
5.浏览器进入web server操作
(1)进入web server
(2)输入用户名和密码
我的是:用户root,密码:123456
(3)创建project
(4)上传压缩的文件
(5)执行任务
执行结果:
(6)查看运行结果
hello world案例完成!!!!