背景
前段时间利用Docker部署了hadoop集群和spark,也简单的提交了任务。但是肯定有一个疑问,如果我们要执行定时任务怎么办呢?或者我们执行复杂的具有顺序的多任务怎么办?在大数据中,这种场景非常常见,一个大数据任务通常由大量的任务组成,并且可能是shell脚本、mapreduce任务、spark任务等,并且任务之间存在依赖关系。手动执行这种原始办法虽然可以,但是人总有出错的时候。今天要带来的一款具有复杂任务调度能力的框架-Azkaban,也支持定时调度。
Azkaban介绍
Azkaban是由Linkedin开源的一个批量工作流任务调度器
Azkaban特点兼容任何版本的hadoop
易于使用的Web用户界面
简单的工作流的上传
方便设置任务之间的关系
调度工作流
模块化和可插拔的插件机制
认证/授权(权限的工作)
能够杀死并重新启动工作流
有关失败和成功的电子邮件提醒
上面的描述太抽象?一个技术要想了解,必须得自己捣鼓一下,接下来我将用Docker来部署,Docker用来学习安装软件不要太舒服,一来它可以很方便的给你提供Linux环境,二来不用将软件装在自己电脑上,久而久之电脑变得很卡特别是win环境。
Docker部署Azkaban
环境准备宿主机系统:win10
hadoop版本:3.1.1(构建基于HDFS的spark)
Spark版本:2.4.5
容器系统:ubuntu16
jdk:oraclejdk1.8.0.251
azkaban:开发版
配置Dockerfile1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24