工作流调度器azkaban(01)——azkaban概述

azkaban是什么?

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

azkaban的特点

它有如下功能特点:

Web用户界面
方便上传工作流
方便设置任务之间的关系
调度工作流
认证/授权(权限的工作)
能够杀死并重新启动工作流
模块化和可插拔的插件机制
具有项目工作区
工作流和任务的日志记录和审计

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

一个完整的数据分析系统通常都是由大量任务单元组成:
shell脚本程序,java程序,mapreduce程序、hive脚本等
各任务单元之间存在时间先后及前后依赖关系
为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;

工作流调度实现方式

简单的任务调度:可直接使用linux的crontab来定义;
复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如ooize、azkaban、airflow等进行任务调度。

常见工作流调度系统Azkaban与Oozie对比

在hadoop领域,常见的工作流调度器有Oozie, Azkaban,Cascading,Hamake等

总体来说,ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。

功能

两者均可以调度mapreduce,pig,java,脚本工作流任务
两者均可以定时执行工作流任务

工作流定义

Azkaban使用Properties文件定义工作流
Oozie使用XML文件定义工作流

工作流传参

Azkaban支持直接传参,例如 i n p u t O o z i e 支 持 参 数 和 E L 表 达 式 , 例 如 {input} Oozie支持参数和EL表达式,例如 inputOozieEL{fs:dirSize(myInputDir)}

定时执行

Azkaban的定时执行任务是基于时间的
Oozie的定时执行任务基于时间和输入数据

资源管理

Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作
Oozie暂无严格的权限控制

工作流执行

Azkaban有两种运行模式,分别是solo server mode(executor server和web server部署在同一台节点)和multi server mode(executor server和web server可以部署在不同节点)
Oozie作为工作流服务器运行,支持多用户和多工作流

工作流管理

Azkaban支持浏览器以及ajax方式操作工作流
Oozie支持命令行、HTTP REST、Java API、浏览器操作工作流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来说,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
一、设计数据表 1.数据表主键设置为nvarchar(36) 2.必须包含Title字段(作为表单标题) 3.必须包括是否完成的标识字段(int型默认值0) 二、codesmith,狼奔生成工具生成代码 1.用codesmith(运行 源代码目录=>WFTemplate=>test_WF.cst)替换狼奔生成Controllers文件中的Create与Edit方法 2.Views中添加codesmith生成的Create与Details文件 三、程序配置 1.数据字典配置(系统设置=》基础设置=》数据字典) 参照请假(需要在表单类型中添加相应流程页面:添加页面Create.cshtml与查看页面Details.cshtml) 格式: 名称:XXX(路径) 例如:请假(~/Views/TempTest/Create.cshtml) 父节点:表单类型 表名:Form 字段:Form 2.菜单配置(系统设置=》菜单管理) 需要在“/WorkFlowRun/Index”路径后面配置设计好的流程ID(系统设置=》流程设置:打开相应流程点击属性按钮可查看流程ID) 例如请假申请菜单 “/WorkFlowRun/Index?flowid=A6509C1B-F49F-47A6-829D-EC43B9210EB2” 3.流程设置(系统设置=》流程设置) 打开:打开已保存的流程 新建:新建新流程 属性:查看流程基础设置包括基本信息、数据连接、标识字段 数据连接:配置流程表主键字段 标识字段:配置流程是否完成标识字段 新步骤:创建新步骤,双击步骤进行步骤设置(基本=>表单,下拉列表数据源来自于数据字典中的表单类型第一个步骤选择Create,之后步骤选择Details) 注:配置好的流程需安装之后才生效! 四、.Net微信公众平台开发 WeiXinController.cs中封装了微信开发接口 在线浏览:http://qxw1194750243.my3w.com/Home

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值