为什么要有Azkaban?

在数据业务场景,对于数据的处理往往是分阶段处理,而不同的阶段可能采用了不同的技术框架去完成这个业务需求,且可能在不同的阶段要干不同的事。

炒饭(锅) à 吃饭(碗) à 筷子(动手)

要吃饭就要等炒饭先用锅炒好,要用筷子动手吃饭就要等碗里装了饭,这是一个流水线式的过程,如果用设定时间的方式,到了什么时候就拿完去装饭,但如果今天兼职的人特别多,那么炒的饭必然就多了,时间也长了,但是设定时间到了,还没炒好,可是有一堆人挤在厨房喊要饭,问题就出现了。

于是有的人会想,如果有一个监督人帮我去这个监控、通知、控制好整个流程,那样多好啊,厨房就不会给天天催了,也不会发生拥挤的情况。

小结:一个完整的数据分析系统通常是由大量的任务单元组成,Shell脚本、Java程序、MapReduce程序、Hive脚本等等,各个任务单元之间存在时间先后及前后依赖关系。

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

简单的工作流调度:Liunx的crontab来定义

复杂的工作流调度:Oozie、Azakaban等。。。

主流几款工作流调度框架

特性

Hamake

Oozie

Azkaban

Cascading

工作流描述语言

XML

XML (xPDL based)

text file with key/value pairs

Java API

依赖机制

data-driven

explicit

explicit

explicit

是否要web容器

No

Yes

Yes

No

进度跟踪

console/log messages

web page

web page

Java API

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?

Azkaban是Linkedin开源的一个批量工作流任务调度器,用于在一个工作流内以特定的顺序运行一组工作和流程。

Azkaban定义了以Key-Value的文件格式来建立任务之间的依赖关系,并提供了一个易于使用的web用户界面维护和跟踪工作流任务。

功能特点

Web用户界面

简单的上传工作流

简单的设置任务关系

调度工作流

认证/授权(授权)

能够杀死并重启工作流

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

项目工作区

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

内置任务类型支持command和java

……

运行方式

solo server mode(executor server和web server部署在同一台节点)

multi server mode(executor server和web server可以部署在不同的节点)

案例

hello.job

$ vi hello.job

# hello.job

type=command

command=echo ‘hello’

world.sh

$ vi world.sh

#!/bin/bash

echo ‘world’

world.job

$ vi world.job

# world.job

type=command

dependencies=hello

command=sh world.sh

mr.job

$ vi mr.job

# mr.job

type=command

dependencies=world

command=/opt/module/hadoop-2.5.0-cdh5.3.6/bin/hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount /user/creeper /azkout

打包(zip) à 上传、执行

使用注意事项

1.时区

2.必须用Https访问,需要配置SSL

什么是Azkaban - 流式调度框架相关推荐

  1. JStorm—实时流式计算框架入门介绍

    JStorm介绍   JStorm是参考storm基于Java语言重写的实时流式计算系统框架,做了很多改进.如解决了之前的Storm nimbus节点的单点问题.   JStorm类似于Hadoop ...

  2. Storm 流式计算框架介绍

    文章目录 1.Storm简介 1.1 DAG(有向无环图) 1.2 Storm介绍 1.2.1 Storm 简介 1.2.2 Storm的优点 1.2.3 Storm的特性 1.3 Storm与Had ...

  3. Data Artisans发布支持ACID事务的流式处理框架Streaming Ledger

    data Artisans宣布推出Streaming Ledger,它扩展了Apache Flink,提供了跨表.键和事件流执行可序列化ACID事务的功能.这项正在申请专利的技术是Flink的专有附加 ...

  4. 流式处理框架storm浅析(下篇)

    本文来自网易云社区 作者:汪建伟 举个栗子 1 实现的目标 设计一个系统,来实现对一个文本里面的单词出现的频率进行统计. 2 设计Topology结构: 这是一个简单的例子,topology也非常简单 ...

  5. 【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )

    文章目录 一.调度器 0.调度器概念 1.调度器目的 2.调度器主要工作 3.调度器位置 4.进程优先级 5.抢占式调度器 二.Linux 内核进程状态 API 简介 三.Linux 进程状态 一.调 ...

  6. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink

    我们知道,大数据的计算模式主要分为批量计算(batch computing).流式计算(stream computing).交互计算(interactive computing).图计算(graph ...

  7. python工作任务流flow实时框架:prefect

    python工作任务流flow实时框架:prefect prefect是一个python的工作任务流调度实时框架,prefect可以快速构建平台系统复杂模块间工作流的监测.当平台系统模块之间的调用链越 ...

  8. Linux抢占式调度简介(转)

    原文链接:https://www.cnblogs.com/sjks/p/10888620.html 参考链接:https://blog.csdn.net/wudongxu/article/detail ...

  9. Apache Pulsar的Function流式计算框架使用

    目录 1. 背景 2. 介绍 3. Pulsar Function的使用 3.1 Pulsar Function的启用 3.2 使用Pulsar Function 4. 自己编写一个Function ...

最新文章

  1. iOS10 UI教程视图的边界与视图的框架
  2. mysql分表 查询 优化_MySQL性能管理及架构(查询优化、分库分表)一遍文章搞定...
  3. 爱快助力元气森林随时随地高效办公
  4. oracle还原脚本,oracle自动恢复脚本
  5. flutter笔记:使用flutter webvie
  6. ZED2 ROS下bag包的录制与回放数据
  7. 极客大学架构师训练营 框架开发 模式与重构 JUnit、Spring、Hive核心源码解析 第6课 听课总结
  8. scrapy-cluster scrapy集群建设
  9. 三对角矩阵的存储和获取(C++版)
  10. java语言的特点_Java语言有什么特点?
  11. hp微型计算机网线怎么安装,惠普M1130网络打印机怎么安装设置?
  12. 【元胞自动机】基于元胞自动机的人口疏散仿真matlab源码
  13. 如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)
  14. 鸡和兔放在一起,一共有20个头和56只脚,问鸡和兔各几只?
  15. 关于海神阁阁主真实身份的推测
  16. 关于Angular Js动态表格合并单元格的一点见解
  17. AD转换为KiCAD的方法
  18. jsp_02JSP隐含对象
  19. windows 7 32 出现 werfault.exe的错误处理
  20. GB28181-2016 协议(一)

热门文章

  1. ElasticSearch 搜索相关
  2. 曾鸣:区块链走向成熟的真正困难是什么?
  3. 大数据--阿里曾鸣:商业智能化是未来最重要的一个趋势
  4. 计算机网络什么是互联网什么是网速,电脑网速变慢是什么原因?如何提高网速?...
  5. iOS 【UIKit-iOS事件之触摸事件】
  6. 阿里云【名师课堂】Java面向对象开发2:面向对象简介
  7. 笔试题-计算图中黑色瓷砖数(深度优先遍历的使用)
  8. 基础算法:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
  9. 【转】OpenGL实现太阳系模型
  10. Selenium之模拟登录铁路12306