最近遇到了很多正在研究ETL及其工具的同学向我们抱怨:同样都在用 Kettle ,起点明明没差异,但为什么别人ETL做的那么快那么好,自己却不断掉坑?

其实,类似于像 Kettle 这样开源的工具,已经覆盖了大部分日常工作所需的功能了,直接部署一套就能够解决企业基本的需求。但在实际使用的过程中我们也会发现,kettle 如同是一个出场自带电话短信功能的智能手机,少了功能各异的智能 App 的配合,和只能接打电话的老年机也没什么不同。

今天我们就先对其中一个比较火热的“App”——调度工具,做一个简单的评测对比,帮助大家快速解锁用开源工具做 ETL 的新姿势。

一、为什么需要调度系统?

开局我们先扫盲。

我们都知道大数据的计算、分析和处理,一般由多个任务单元组成(Hive、Sparksql、Spark、Shell等),每个任务单元完成特定的数据处理逻辑。

多个任务单元之间往往有着强依赖关系,上游任务执行并成功,下游任务才可以执行。比如上游任务结束后拿到 A 结果,下游任务需结合 A 结果才能产出 B 结果,因此下游任务的开始一定是在上游任务成功运行拿到结果之后才可以开始。

而为了保证数据处理结果的准确性,就必须要求这些任务按照上下游依赖关系有序、高效的执行。一个较为基础的处理方式是,预估出每个任务处理所需时间,根据先后顺序,计算出每个任务的执行的起止时间,通过定时跑任务的方式,让整个系统保持稳定的运行。

一个完整的数据分析任务最少执行一次,在数据量较少,依赖关系较为简单的低频数据处理过程中,这种调度方式完全可以满足需求。然而在企业级场景中,更多的是需要每天执行,如果任务数量较多,在任务启动的时间计算上就将耗费大量时间,另外如果出现上游任务执行时长超出原定预计时间或者运行异常的问题,上述的处理方式将完全无法应对,也会对人力物力造成重复损耗,因此,对于企业数据开发过程来说,一个完整且高效的工作流调度系统将起到至关重要的作用。

二、调度系统工具对比

很多同学上手 ETL 工作之后,最先接触到的应该是 linux 自带的定期执行程序的命令 Crontab,使用简单,运行稳定,当安装完成操作系统之后,默认便会启动此命令。上手容易但是也有自己的缺点,比如当任务变多之后无法管理、crontab 在机器上,无法备份,挂机就没。因此我们在这里对 crontab不做过多介绍,主要针对较为成熟的工作流调度工具:Apache Oozie、Azkaban、数栖云进行横评。

1、Oozie

Oozie:训象人(调度mapreduce)。一个基于工作流引擎的开源框架,Oozie需要部署到java servlet中运行,主要用于定时调度,多任务之间按照执行的逻辑顺序调度。

Oozie 下载地址:https://oozie.apache.org

它有如下功能特点:

  • 统一调度hadoop系统常见的mr任务启动,hdfs操作,shell调度,hive操作等;
  • 让复杂的依赖关系,时间触发,事件触发使用xml语言进行表达,开发效率增高(这个不一定,个人很讨厌xml,我觉得效率不高…);
  • 一组任务使用一个DAG表示,使用图形表达,流程清晰;
  • 支持多种任务调度,能完成大部分的hadoop任务;
  • 程序定义支持EL常量和函数,表达丰富;
  • Oozie规定在完成工作后发送电子邮件通知;
  • Azkaban使用Web操作。Oozie支持Web,RestApi,Java API操作;

2、Azkaban

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

Azkaban 下载地址:https://azkaban.github.io/downloads.html

它有如下功能特点:

  • 兼容任何版本的hadoop;
  • 易于使用的web界面;
  • 简单工作流的上传;
  • 方便配置任务之间的依赖关系;
  • 调度工作流;
  • 模块化和可插拔的插件机制;
  • 认证/授权;
  • 能够杀死并重新启动工作流;
  • 失败和成功的电子邮件提醒;

3、数栖云

基于数澜科技旗下产品数栖4.0部署于云端,面向于个人、企业主和独立数据应用开发商提供的一个一站式大数据工具平台和社区。基础套餐永久免费!透过数栖平台,个人和企业无需过多关注大数据底层存储和计算引擎的复杂的安装、繁琐的配置和日常运维,即可将自有的多来源业务系统数据进行集成和开发,形成数据资产,并赋能于自有业务场景,在云端轻松构建自有数据中台。

数栖云产品介绍页面:dtcloud.dtwave.com

数栖云在线注册使用地址:shuqi.dtwave.com

数栖云调度功能如下:

  • 完成20多种数据源的适配调度:Mysql、Oracle、Hive、HBase、Redis、MongoDB、ODPS、Postgresql、ElasticSearch、API等;
  • 模块化和可插拔的插件机制;
  • 支持可视化工作流配置;
  • 支持任务告警:邮件,电话,短信;
  • 调度类型多样化:正常调度,空跑,暂停调度;
  • 支持任务优先级配置;
  • 调度周期配置简单:进行鼠标点击即可;
  • 支持工作流与工作流之间组装;
  • 支持工作流测试运行;
  • 在工作流查看界面中就可以完成:查看代码,运行日志,重跑,置成功并重跑下游,重跑下游等操作;
  • 出错任务快速定位;

三、一波总结

Apache Oozie 是一个重量级的任务调度系统,功能全面,但是部署及配置会比较麻烦,从 crontab 到 Oozie 上手会有一定难度。Azkaban 是介于 oozie 和 Crontab 之间的工具,但是安全性上不如 Oozie,同时如果出现失败情况,Azkaban会丢失所有的工作流,Oozie则可以继续运行。数栖云相较于以上两种工具而言,解决了配置及部署复杂的问题,易于扩展的同时,也在工作流中有了更多方便开发及运维的其他功能。

当然数栖云不仅仅是一个功能全面的工作流调度工具,作为一个一站式大数据平台,它同时涵盖以下功能,无论是简单的 ETL 工作,还是复杂的数据中台构建工作,使用数栖云都可以完成。基础版永久免费!无论遇到什么问题都能找客服解决,比开源产品体验好 100 倍的工具,确定不来试试看嘛?

更多详情请点击链接了解:dtcloud.dtwave.com

扫码 ↓ 立 即 进 入 数 栖 云 ~

ETL调度系统及常见工具对比:azkaban、oozie、数栖云 | 数澜科技相关推荐

  1. 工作流调度系统介绍,常见工作流调度系统对比,azkaban与Oozie对比,Azkaban介绍与特性(来自学习笔记)

    1. 工作流调度器azkaban 1.1 概述 1.1.1为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序.hive ...

  2. 离线计算七 辅助系统(flume、sqoop、oozie)

    课程大纲(辅助系统) 离线辅助系统 数据接入 Flume介绍 Flume组件 Flume实战案例 任务调度 调度器基础 市面上调度工具 Oozie的使用 Oozie的流程定义详解 数据导出 sqoop ...

  3. 主流大数据调度工具对比(DolphinScheduler特点)

    大数据环境下,调度工具比不可少,离线批任务和准实时任务都需要调度去驱动.下文介绍主流大数据调度工具对比DolphinScheduler .Azkaban.Airflow.Oozie.Xxl-job A ...

  4. 主流大数据调度工具对比

    大数据环境下,调度工具比不可少,离线批任务和准实时任务都需要调度去驱动.下文介绍主流大数据调度工具对比DolphinScheduler .Azkaban.Airflow.Oozie.Xxl-job 非 ...

  5. ETL的灵魂:调度系统

    图片拍摄于郑州大学新校区 大家好,我是一哥,最近有小伙伴私聊我说他们的调度系统经常出问题,领导要求大家人在哪电脑背到哪,家庭生活一地鸡毛--,其实我也有类似的经历,今天给大家分享一下做调度系统的一些经 ...

  6. 免费etl调度工具Taskctl-Web应用版功能框架及特性

    目录 初识Taskctl-Web版 功能框架 系统特性 登录界面 下载方式 安装环境准备 如何0元获取永久使用授权 初识Taskctl-Web版 Taskctl Free应用版原型是在原有商用版Tas ...

  7. ETL调度工具中美PK ( TASKCTL VS Control-M)

    美方:Control-M  ( www.bmc.com) 中方:TASKCTL  ( www.taskctl.com ) 毫无疑问,Control-M作为美方代表当之无愧, 因为该软件不仅是美国国内最 ...

  8. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  9. 从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

最新文章

  1. 夏普深陷亏损 郭台铭何以执著寻求“联姻”?
  2. 什么是html的编码方式,HTML网页中“上”是什么编码方式啊?网页中&# 爱问知识人...
  3. 人才测评——帮你“透视”人才
  4. 由Effiproz DataBase来看.NET开源数据库发展
  5. Cluster模式潜在问题及解决方案、Web服务综合解决方案
  6. 二叉树中的最大路径和—leetcode124
  7. halcon get_image_pointer1获取图像指针
  8. mysql时间字段条件查询_mysql 查询 时间作为查询条件
  9. 在Java中将时间单位转换为持续时间
  10. javascipt很有用的代码,实现全选与反选,还可以与struts2或sevelet交互使用
  11. 【华为云技术分享】40多元成本制作基于Arduin的随动四轴机械臂,机械臂实现步骤记录、复现等功能
  12. Java配置文件Properties的读取、写入与更新操作
  13. gsp 页面 html.dat,Gsp
  14. SourceOffSite使用方法
  15. android开发学习-日经常使用到的好东西-经常使用技巧分享
  16. 提速降费再发力 中国联通推出八项惠民便民措施
  17. 老电脑也要玩tensorflow,解决AVX、SEE、SEE2等报错之路
  18. 拒绝年费自己组建MarkdownNice转微信公众号格式神器
  19. 软件测试--MonkeyRunner(3)
  20. 科普:DisplayPort与HDMI的比较

热门文章

  1. C#交换数组中的第一个和最后一个、第二个和倒数第二个,以此类推,把数组进行反转并打印
  2. 【重要通知】11月基金从业资格考试今天报名截止!
  3. 数据挖掘和数据分析的书,为大家几本好的
  4. Python小实验——洗衣机模糊推理
  5. sqlserver对cpu主频要求_SQLServer数据库之SQLSERVER能识别多少个逻辑CPU
  6. vs2017 .vs下的ipch文件夹太大
  7. 如何用DXGI抓屏,并识别视频文件中的数字
  8. 2022年高级性能测试岗面试题【面试必看】
  9. 基于Python实现的AStar求解八数码问题
  10. RSA公钥密码体制及C++代码实现