楼主: ada89k
2652 2

[Hadoop] 【数据分析师分享】Azkaban简介与使用 [推广有奖]

  • 3关注
  • 72粉丝

院士

99%

还不是VIP/贵宾

-

威望
2
论坛币
613777 个
通用积分
16.9958
学术水平
123 点
热心指数
149 点
信用等级
82 点
经验
46289 点
帖子
1667
精华
3
在线时间
2443 小时
注册时间
2017-2-7
最后登录
2024-4-22

楼主
ada89k 在职认证  发表于 2017-7-29 17:26:02 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

数据分析师分享: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

  
  

Java API

  
  

依赖机制

  
  

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的用户界面。如图:

20170725153715269 .jpg

首页有四个菜单
1.projects:最重要的部分,创建一个工程,所有flows将在工程中运行。
2.scheduling:显示定时任务
3.executing:显示当前运行的任务
4.history:显示历史运行任务

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

20170725164120024.jpg


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

# foo.job
type=command  
command=echo foo  

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

# bar.job
type=command  
dependencies=foo  
command=echo bar  
这样job就创建好了。

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

20170725165241890.jpg

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

20170725170751873.jpg

左边的选项卡依次为:
Flow view:流程视图。可以禁用,启用某些job
Notification:定义任务成功或者失败是否发送邮件
Failure Options:定义一个job失败,剩下的job怎么执行
Concurrent:并行任务执行设置
Flow Parametters:参数设置。
左下角的Schedule是设置调度时间,右下角的Execute为直接运行,点击Execute。运行之后在Graph可以看到:

20170725165455239.jpg

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

20170725165650673.jpg

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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据分析师 数据分析 BAN ABA 分析师 azkaban hadoop集群 工作流 hadoop 数据分析师

已有 1 人评分经验 学术水平 收起 理由
Nicolle + 100 + 1 精彩帖子

总评分: 经验 + 100  学术水平 + 1   查看全部评分

沙发
西门高 发表于 2017-8-1 17:15:46 |只看作者 |坛友微信交流群
谢谢分享

使用道具

藤椅
cometwx 发表于 2017-10-27 16:29:21 |只看作者 |坛友微信交流群
感谢分享!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-23 22:35