0
点赞
收藏
分享

微信扫一扫

Azkaban入门笔记


概述

LinkedIn开源的轻量级工作流调度器(任务调度框架),Java语言编写,支持Web UI界面,配置和操作简单,支持定时任务和脚本,SLA告警、完善的权限控制。

​​官网​​​​GitHub​​​​下载地址​​

功能包括:

  • 兼容Hadoop版本
  • Web UI和Http工作流上传简单易用
  • 项目工作区
  • 工作流调度
  • 模块化和插件化
  • 认证和授权
  • 用户行为跟踪
  • 邮件告警失败和成功
  • SLA告警
  • 重启失败的任务,即失败重试,且只重视失败的单元并非从头跑整个任务

架构

三个关键组件

  • Relational Database:存储大部分执行流状态等元数据,如项目名称、项目描述、项目权限、任务状态、SLA规则等
  • WebServer:项目管理、权限授权、任务调度、监控executor,整个Azkaban工作流系统的主要管理者,它用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务;持久化所有的SLA规则;
  • ExecutorServer:作业流执行的Server,负责具体工作流的提交、执行,通过数据库来协调任务的执行;存储作业的输出日志,并将其流入数据库;如果一个流在不同的执行器上运行,它将从数据库中取取状态

对比

常见的工作流调度器:Ooize、AirFlow、Zeus

特性

Oozie

Azkaban

AirFlow

Zeus

工作流描述语言

XML

text file with key/value pairs

是否要Web容器

Yes

Yes

进度跟踪

web page

web page

Hadoop Job调度支持

yes

yes

运行模式

daemon

daemon

事件通知

no

Yes

需要安装

yes

yes

支持的Hadoop版本

0.20+

currently unknown

重试支持

workflownode evel

yes

运行任意命令

yes

yes

实例

支持的任务类型:command形式的Linux命令、java语言打包的jar。

目前,Azkaban上传的工作流文件只支持xxx.zip文件。作业名称在项目中必须是唯一的。

JOB实例

简单无依赖任务
新建文件​​​hello.job​​​,后缀名固定,必须以​​.job​​结尾:

type=command
command=echo "Hello Azkaban"

将该文件打包为​​hello.zip​​,可上传至Web端。

依赖任务
新建文件​​​job1.job​

type=command
command=echo "Hello task 1"

新建文件​​job2.job​

type=command
dependencies=job1
command=echo "Hello Azkaban"

将该文件打包为​​job.zip​​,可上传至Web端。

脚本执行任务
command填写脚本的绝对路径或压缩包里面的脚本文件:

type=command
command=/usr/local/hadoop-2.7.6/bin/hadoop fs -mkdir /Azkaban
# sqoop.sh需要加上文件头:#!/bin/bash
command=sh sqoop.sh

报错:
​​​azkaban.utils.UnderfinedPropertyException: Missing required property 'azkaban.native.lib'​​​ 解决方法:
在​​exec-server​​目录下,执行命令:
​vim plugins/jobtypes/commonprivate.properties​

# set execute-as-user
execute.as.user=false
# 追加
azkaban.native.lib=false

Flow实例

新建文件​​flow_demo.project​​:

azkaban-flow-version: 2.0

新建文件​​flow_demo.flow​

---
config:
#failure.emails: xx@xx

nodes:
- name: flow_demo
type: command
config:
command: sh flow_demo.sh

新建文件​​flow_demo.sh​

#!/bin/bash
yesterday=`date -d "-1 day" +"%Y%m%d"`
echo "Hello , $yesterday"

打包为​​flow_demo.zip​

版本区别

2是Job;
3是Flow

定时器设置;

安装

分Web可视化界面和Exec执行器。

参考


举报

相关推荐

0 条评论