当有一个大job,由4个小job构成,这4个job分别为jobA,jobB,jobC,jobD。其中jobB和jobC依赖于jobA,jobD依赖于jobB和jobC的结果如下图所示
这个dajob的整个执行过程都需要人工的参与,因为每个小job啥时候跑完每天都是不一样的,数据量的多少每天也都是不一样的,比如第一天只有10G数据,一个小时就跑完了,第二天的数据有30个G,需要4个小时,也就是说每个job所需要的时间每天都是不一样的,这种情况下,Linux中原有的crontab简单的时间调度,就不那个满足需求了,整个job的执行过程中全程依靠人工检测job的执行状况,但是我们都知道,大多数job都是三更半夜跑的,在这种情况下,就急需一种调度系统来解决这种困境。也就是我们长说的 Work Flow,此时我们需要Work Flow来规划好作业的执行调度。市场主流的工作流有两种:Oozie以及Azkzban。
Oozie:重量级的,不推荐使用,开发需要写一堆XML配置,非常麻烦
Azkzban:轻量级的,推荐使用,具有很好的WEBBUI交互设计,但是也是比较难用的,部分功能需要自定义开发,如无短信通知功能。
安装以3.57.0版本的Azkaban需要有jdk1.8、gradle、git环境,gradle是类似于maven的jar依赖的管理工具。
这两个你下载那一个都可以
yunm install -y git
如果按照以上步骤来,基本上编译不会报错,所有的包都要保证是从官网下载的
如果有报错可以参考一下这个博客:https://blog.csdn.net/qq_32641659/article/details/90217430#1WorkFlow_1
4.2关闭命令
[hadoop@hadoop001 azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/shutdown-solo.sh[root@hadoop001 conf]# pwd/home/hadoop/app/azkaban-solo-server-0.1.0-SNAPSHOT/conf
[root@hadoop001 conf]# ll total 8 -rw-rw-r-- 1 root root 2001 May 16 10:11 azkaban.properties -rw-rw-r-- 1 root root 361 May 16 09:02 azkaban-users.xml -rw-rw-r-- 1 root root 0 Sep 5 2018 global.properties [root@hadoop001 conf]# vim azkaban-users.xml# 添加用于登录的admin用户
<user password="123456" roles="admin" username="itocean"/>
[root@hadoop001 conf]#vim azkaban.properties
# 修改
azkaban.name
azkaban.label
看你心情想修改成啥就修改成啥
5启动
# 不要进入bin目录执行,否则会找找不到相应的配置 ./bin/start-solo.sh
7查看Web界面
http://hadoop001:8081/
##8081是默认端口号
8.创建项目
9.创建一个简单flow
一个flow是由.project以及.flow两个文件构成
编辑flow20.project文件azkaban-flow-version: 2.0
编辑basic.flow,basic则是flow的名称配置具体作业信息,作业名jobA,作业的类型命令,作业配置,执行的命令
nodes:
- name: jobA
type: command
config:
command: touch /tmp/job1.txt
10.查看执行结果
可以看到已经创建了job1.txt文件
11.依赖作业的模式
创建basic.flow,写入以下内容
nodes: - name: jobC type: noop # jobC depends on jobA and jobB dependsOn: - jobA - jobB
- name: jobA type: command config: command: echo "This is an echoed text."
- name: jobB type: command config: command: pwd
同上一样把flow20.project和basic.flow一起打zip包并创建新的项目上传zip包
执行后得到,从图中可以看到jobC依赖于jobA和jobB
参考博客:https://www.cnblogs.com/shujuxiong/p/9116394.html
转载于:https://www.cnblogs.com/xuziyu/p/10901284.html