Azkaban是Linkedin开源的任务调度软件。致力于解决Hadoop job 问题。
主要解决ETL中有顺序的任务。
一、基本概念:
其中主要有三个组件组成:
Relational Database(只支持MySql)
Azkaban WebServerWebUI)
Azkaban ExecutorServer
Azkaban2目前支持三种模式:
solo server mode
two server mode
multiple executor mode
Azkaban界面中的主要元素有三个,分别是project、job与flow
project可以理解为某个项目,其项目中包含了许多需要执行的任务,即为job,各个job之间形成依赖关系,便组成了工作流flow
二.如何使用:
首先,需要创建以.job为扩展名的文件,一个文件即代表一个任务。
所有的job都需要一个知道他们如何去执行的type。一般的,有这样四种job类型:Java、command、javaprocess和pig。
本文以type=command为例
其次在这个文件中添加这个任务所需的参数与参数值,
必须的参数有type与command
例如:
type=command
command=echo 'jobs start’
四类job类型的文件都可以添加的参数有以下几个:
retries --> 任务失败时自动重启的次数
retry.backoff --> 每一次任务尝试重启时之间等待的毫秒数
working.dir --> 可以重新指定任务执行的工作目录,默认为目前正在运行的任务的工作目录
failure.emails --> 任务失败时的邮件提醒设置,以逗号分隔多个邮箱
success.emails --> 任务成功时的邮件提醒设置,以逗号分隔多个邮箱
notify.emails --> 任务无论失败还是成功都邮件提醒设置,以逗号分隔多个邮箱
dependencies--> 定义该文件依赖的文件,值为被依赖文件的文件名,多个目标以逗号分隔,不加扩展名
保存为start.job文件即创建好了一个job,其中
Azkaban每个project中只能上传一个.zip文件

三、创建工作流flow

定义好所有的参数后即为定义好了一个job,如果添加了dependencies参数即形成了工作流flow
以开头的任务流为例:
#start.job
type=command
command=echo "jobs start"
 
  1. #A.job
  2. type=command
  3. command=echo "This A job"
  4. dependencies=start
 
  1. #B.job
  2. type=command
  3. command=echo "This B job"
  4. dependencies=start
 
  1. #C.job
  2. type=command
  3. command=echo "This C job"
  4. dependencies=A,B
 
  1. #D.job
  2. type=command
  3. command=echo "This D job"
  4. dependencies=C
保存好5个文件后,将5文件打包成zip,然后在界面中进行上传,就会将这几个job上传到了系统中,最终呈现成一个DAG图。
四、简单比较:
airflow  python实现,在使用的时候需要自己填写python代码,利用Python代码实现 Job 的 Dag流程。界面操作人性化,缺点,只能单节点运行。
Oozie:与airflow类似,使用的时候需要手动填写XML的配置文件,WEB UI,类比airflow 并没有那么人性化。
五、总结
这几天在使用Azkaban的时候遇到些坑,这里简单记录一下。
1.启动Azkaban的时候,一定要在/bin目录这一级目录使用/bin/xxx进行启动与停止,
否则找不到,启动会报错。
2.在使用的时候上传job的文件,若是单个job文件压缩上传,不要放到一个文件夹里面再压缩,
需要直接压缩,不然Azkaban会找不到对应的job。若是多个job 文件,也是不要将所有的job
文件放到文件夹下压缩,而是直接压缩多个job文件。

【azkaban】学习azkaban的笔记以及心得相关推荐

  1. azkaban学习::azkaban安装

    目录 准备工作 下载源码 上传至虚拟机并解压 编译 安装mysql 初始化azkaban数据库 初始化数据库表 mysql运行 azkaban配置 生成密钥对和证书 web配置 Executor配置 ...

  2. azkaban mysql参数_学习azkaban的笔记以及心得

    Azkaban是Linkedin开源的任务调度软件.致力于解决Hadoop job 问题. 主要解决ETL中有顺序的任务. 一.基本概念: 其中主要有三个组件组成: Relational Databa ...

  3. 熬秃了头整理的网络工程师学习笔记和心得:传闻中的OSPF到底是什么

    目录 OSPF是什么? 关于ODPF的基本术语: Router ID选举规则如下 ospf支持的网络类型: OSPF报文类型: ![在这里插入图片描述](https://img-blog.csdnim ...

  4. 《好好学习》读书笔记心得感悟1400字

    <好好学习>读书笔记心得感悟1400字: 再有三个月,孩子就要上小学了. 这两天,孩子的爷爷奶奶反复和我强调,一定要养成良好的作息习惯."第一,早睡早起.晚上无论我有多忙,也一定 ...

  5. Git 个人学习笔记及心得

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  6. 飞桨图像分类零基础训练营学习笔记和心得体会

    飞桨图像分类零基础训练营学习笔记和心得体会 参加了百度一线AI工程师为大家讲解图像分类模型部署.课程内容包含Paddle2.0转静合一轻松导出模型.Paddle Lite环境准备.Paddle Lit ...

  7. golang-阅读雨痕大神的Go语言学习笔记的心得

    golang-阅读雨痕大神的Go语言学习笔记的心得 第一章 概述 1.1 go与java中的局部变量初始化问题 1.2 golang中实现生产者消费者模型,利用管道进行数据通信 第二章 类型 2.1 ...

  8. java学不下去能学web安全吗,这半年学习 Web 安全的一点心得体会

    原标题:这半年学习 Web 安全的一点心得体会 来自公众号: 信安之路 大家好,我是 Mirror(王宇阳),专科在读的大二学生:接触信安时间不长,大佬多多指教.信安之路成长平台网站开放后我就在双十一 ...

  9. C++ primer plus读书笔记与心得

    C++Primer plus读书笔记与心得 2020年过年期间,因新型冠状肺炎影响,推迟复工.根据公司读书计划,将c++ primer plus 这本书复习了一遍,并将其中一些章节中自己记忆模糊或者之 ...

  10. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

最新文章

  1. 百度大脑发布企业服务解决方案,将 AI 技术落实到细分领域
  2. CodeForces - 1409F Subsequences of Length Two(dp)
  3. 循序渐进PYTHON3(十三) --4-- DJANGO之CSRF使用
  4. 爱奇艺《青春有你3》节目组决定终止节目录制
  5. vue 自定义组件 v-model
  6. java取下一天的零点
  7. 测试自动化金字塔在软件开发中是如何使用的?
  8. c-free5.0 程序代码正确 结果运行程序错误_Java程序员经典面试题集大全 (六)...
  9. Java集合(十三)Iterator和Enumeration的区别和对比
  10. 微波射频学习笔记18-------偶极子天线和微波天线设计介绍
  11. 射影几何----极点极线割线共点四点调和定理
  12. 布线时排阻(IC)管脚交换步骤
  13. 启动root用户 银河麒麟_麒麟系统使用root权限运行程序
  14. python 实现证件照换底
  15. 游戏建模与动画建模的区别,小白学建模前一定要知道
  16. Android系统编译小总结
  17. 如何使用TI的DSP芯片cmd文件
  18. 牛逼了,利用Python实现“天眼系统”,只要照片就能了解个人信息
  19. Java核心技术之Comparator和Comparable在排序中的应用
  20. 016 | 乡村振兴战略下农村宅基地有偿退出现状 | 大学生创新训练项目申请书 | 极致技术工厂

热门文章

  1. git 应用 branch指针和HEAD指针
  2. vCenter Server Appliance 所需的端口
  3. Redis学习总结(18)——Redis 常见的使用场景汇总
  4. Java基础学习总结(105)——让 Java 开发更简单,提高工作效率!
  5. 全国中小学生计算机竞赛试题,全国中小学电脑制作活动
  6. concatenate python_python中numpy.concatenate()函数的使用
  7. 如何在centos7上安装FreeIPA的客户端
  8. 【转载】这是我看过最好的对HTTPS的理解
  9. 干货| PHPCon上TARS-PHP全面解读及PPT下载
  10. 3星|《增长黑客》:增长黑客是一个牵强的概念