oozie
优势: 老牌任务调度系统, 稳定性高; cdh版本自动集成. 无需担心兼容性
劣势: 重量级, 任务调度依靠xml文件, 门槛较高, 不够灵活, 不易于二次开发和后期维护
kattle
优势
azkaban
优势: 轻量级, 易使用, 深度集成spark, 通过插件扩展功能
劣势: 没有易用的, 更细粒度的流程控制, 比如, 增量导入需要依赖shell
+sqoop
3.56.0
版本为例./gradlew build
mavenLocal()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'http://maven.oschina.net/content/groups/public/'}
test
未通过而失败, 这是因为官网的编译版本本身就不带测试命令. 需要运行./gradlew build -x test
跳过测试.tar.gz
文件. 例如, ./azkaban-solo-server/build/distributions/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
.sql
文件.azkaban-web-server
在一台服务器上启动即可, 而azkaban-exec-server
可以部署在多态服务器上.
网页服务和执行器的目录下的conf文件夹中, 都有azkaban.properties
, 虽然同名, 但并不需要保持相同.
执行器的azkaban.properties
只需要配置mysql相关的信息, 这是因为执行器启动时, 会在mysql中注册自己的hostname
和port
, 而且会自动生成一个id
.
azkaban运行任务时, 就可以设置useExecutor
=id
, 以指定任务运行的节点
网页服务的azkaban.properties
, 需要修改的字段示例如下
# 设置网页展示的内容
azkaban.name=CoreMaster
azkaban.label=Show your wings, and cover up the sky.
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai
# 设置网页链接的相关内容, 比如端口号
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
# 设置邮件发送的服务器
mail.sender=
mail.host=smtp.xx.com
mail.user=
mail.password=
# mail.tls=true
mail.port=
# mysql设置
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
类型 | 说明 |
---|---|
comman | Linux shell命令行任务 |
gobblin | 通用数据采集工具 |
hadoopJava | 运行hadoopMR任务 |
java | 原生java任务 |
hive | 支持执行hiveSQL |
pig | pig脚本任务 |
spark | spark任务 |
hdfsToTeradata | 把数据从hdfs导入Teradata |
teradataToHdfs | 把数据从Teradata导入hdfs |
---
# 设置全局配置
config:
failure.emails: [email protected]
nodes:
- name: jobC
type: noop
dependsOn:
- embedded_flow
- name: embedded_flow
type: flow
config:
prop: value
nodes:
- name: jobB
type: noop
dependsOn:
- jobA
- name: jobA
type: command
config:
command: pwd
注: 调度文件的换行一定要是unix
格式, 也就是\n, windons下的dos
格式(\r\n
), 在任务执行时会报异常