Azkaban整理

一、Azkaban简介

Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。简而言之就是一个工作流调度系统。

为什么需要工作流调度系统?

因为一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,Java程序,mapreduce程序、Hive脚本等

而各任务单元之间存在时间先后及前后依赖关系

为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;

常见工作流调度系统

Hadoop领域,常见工作流调度系统有:Oozie, Azkaban,Cascading,Hamake

下面的表格对上述四种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在显著的区别,在做技术选型的时候,可以提供参考


特性


Hamake


Oozie


Azkaban


Cascading


工作流描述语言


XML


XML (xPDL based)


text file with key/value pairs


JavaAPI


依赖机制


data-driven


explicit


explicit


explicit


是否要web容器


No


Yes


Yes


No


进度跟踪


console/log messages


web page


web page


javaAPI


Hadoop job调度支持


no


yes


yes


yes


运行模式


command line utility


daemon


daemon


API


Pig支持


yes


yes


yes


yes


事件通知


no


no


no


yes


需要安装


no


yes


yes


no


支持的hadoop版本


0.18+


0.20+


currently unknown


0.18+


重试支持


no


workflownode evel


yes


yes


运行任意命令


yes


yes


yes


yes


Amazon EMR支持


yes


no


currently unknown


yes

其中比较常用的为Azkaban和Oozie。

Azkaban功能特点

1 Web用户界面

2 方便上传工作流

3 方便设置任务之间的关系

4 调度工作流

5 认证/授权(权限的工作)

6  能够杀死并重新启动工作流

7  模块化和可插拔的插件机制

8  项目工作区

9 工作流和任务的日志记录和审计

二、Azkaban使用

Azkaban有web界面,输入https://localhost:8443 (注意是https)可以访问Azkaban的用户界面。如图:

首页有四个菜单

  • projects:最重要的部分,创建一个工程,所有flows将在工程中运行。
  • scheduling:显示定时任务
  • executing:显示当前运行的任务
  • history:显示历史运行任务

2.1 创建工程

一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。点击右上角的create project,在弹出的窗口中填写工程名和描述即可创建工程。

2.2 创建job

创建job很简单,只要创建一个以.job结尾的文本文件就行了。比如:

[java] view
plain
 copy

  1. # foo.job
  2. type=command
  3. command=echo foo

如果是多个job并且有依赖关系,可以使用dependencies参数指定依赖关系。如:

[java] view
plain
 copy

  1. # bar.job
  2. type=command
  3. dependencies=foo
  4. command=echo bar

这样job就创建好了。

2.3 将工作流打包上传

将上面两个job打成zip包,在页面上点击update上传。上传之后如图:

2.4 运行

之后点击绿色的Execute Flow,弹出窗口:

左边的选项卡依次为:

Flow view:流程视图。可以禁用,启用某些job

Notification:定义任务成功或者失败是否发送邮件

Failure Options:定义一个job失败,剩下的job怎么执行

Concurrent:并行任务执行设置

Flow Parametters:参数设置。

左下角的Schedule是设置调度时间,右下角的Execute为直接运行,点击Execute。运行之后在Graph可以看到:

在job List中可以看到个job运行的起始终止时间。

这样工作流的调度就执行完了,Azkaban的使用还是挺简单的吧。

原文地址:https://www.cnblogs.com/cn-superjun/p/9513332.html

时间: 2024-11-07 12:47:54

Azkaban整理的相关文章

GitHub上整理的一些工具

GitHub上整理的一些工具 GitHub   2015-11-19 10:10:47 发布 您的评价:       0.0   收藏     5收藏 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT

史上最全“大数据”学习资源整理

史上最全"大数据"学习资源整理 当前,整个互联网正在从IT时代向DT时代演进,大数据技术也正在助力企业和公众敲开DT世界大门.当今"大数据"一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明.新服务和新的发展机遇. 为了帮助大家更好深入了解大数据,云栖社区组织翻译了GitHub Aweso

大数据调度平台 azkaban windows IDEA/eclipse debug 环境搭建

近些日子需要研究大数据调度平台azkaban源码, 发现只有 linux运行的脚本,也没有windows下面的脚本,下面是怎么搭建IEDA /eclipse debug运行环境步骤.其实也挺简单的,我整理了下,方便初学者快速上手调试 ,希望可以帮助到大家. 1. 下载azkaban 源码 ,并按文档说明 ./gradlew build 2.怎么debug azkaban-exec-server 在IDEA或eclipse 右键 azkaban.execapp.AzkabanExecutorSer

WPF笔记整理 - Bitmap和BitmapImage

项目中有图片处理的逻辑,因此要用到Bitmap.而WPF加载的一般都是BitmapImage.这里就需要将BitmapImage转成Bitmap 1. 图片的路径要用这样的,假设图片在project下的Images目录,文件名XXImage.png. pack://application:,,,/xxx;component/Images/XXImage.png 2. 代码: Bitmap bmp = null; var image = new BitmapImage(new Uri(this.X

linux 命令 及学习进度综合整理

linux  命令  及学习进度综合整理 pwd 查看当前所在位置 cd  跳转到什么什么目录 ls  显示所有文件和目录 ls -l  显示目录详细信息 cd ..  返回上一级 vi  lnany.txt  创建一个文件 vi  .lnany.txt    创建一个隐藏文件 vim 是 vi 的升级版 功能更多 出现 -bash: vim: command not found 的解决办法 i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝

夏令营讲课内容整理Day 0.

今年没有发纸质讲义是最气的.还好我留了点课件. 第一次用这个估计也不怎么会用,但尝试一下新事物总是好的. 前四天gty哥哥讲的内容和去年差不多,后三天zhn大佬讲的内容有点难,努力去理解吧. 毕竟知识还是需要消化的. 这里我只整理知识点,每天上午评测的题目我会单独处理. 嗯大概就是这样了. 写完后我就会考虑发到博客园里.

linux基本命令整理(三):进程和vim

linux基本命令整理(三) -----------进程和vim 一.进程 1.查看进程 ps:将某个时间点的程序运行的状况截取下来 a:所有的进程 x:后台进程 u:有效的使用者相关的进程(常用组合aux) -IA:也能观察系统所有的数据 axjf:连同部分的程序树状态 -I:今查看和自己bash相关的程序 top:动态的观察进程的变化 -d:后面接描述,就是整个页面刷新的时间:默认是5秒 -b:以批次的方式执行top -n:与-b搭配使用,意义是需要进行几次top的输出结果 如:top -b

检测和整理索引碎片

索引碎片的检测和整理 存储数据是为了查找数据,存储结构影响数据查找的性能.对无序数据进行查找,最快的查找算法是哈希查找:对有序数据进行查找,最快的查找算法是平衡树查找.在传统的关系型数据库中,聚集索引和非聚集索引都是平衡树(B-Tree)类型的存储结构,用于顺序存储数据,便于实现数据的快速查找.除了提升数据查找的性能之外,索引还能减少硬盘IO和内存消耗.通常情况下,硬盘IO是查找性能的瓶颈,由于索引是数据表的列的子集,这意味着,索引只存储部分列的数据,占用的硬盘空间比全部列少了很多,因此,数据库

新awk整理

总感觉上一篇awk的总结几乎是照着man翻译过来的,惨不忍睹 无意间在互联网上有找到了宝贵的资料 感觉整理的很好,想着照着这个来重新写下,对照新的man更新下吧,只是总是在改变的 一.awk简介二.awk工作流程三.awk程序结构四.awk基本语法 awk命令行模式 awk程序文件 awk标准选项五.awk内置变量 标准awk变量 awk特定变量(即专有变量)六.awk操作符 算数运算符 关系运算符 逻辑运算符 三元运算符 一元运算符 字符串连接操作符(即空格符) 数组成员操作符(in) 正则表