点亮 ? Star · 照亮开源之路
GitHub:https://github.com/apache/dolphinscheduler
文章插图
精彩回顾
近期,初灵科技的大数据开发工程师钟霈合在社区活动的线上 Meetup 上中,给大家分享了《基于 Apache DolphinScheduler 对千亿级数据的应用实践》主题演讲 。
我们对于千亿级数据量的数据同步需求,进行分析和选型后,初灵科技最终决定使用DolphinScheduler进行任务调度,同时需要周期性调度 DataX、SparkSQL 等方式进行海量数据迁移 。在日常大数据工作中,利用DolphinScheduler减少日常运维工作量 。
讲师介绍
文章插图
?
钟霈合
初灵科技 大数据开发工程师
演讲大纲:
- 背景介绍
- 海量数据处理
- 应用场景
- 未来的规划
02 需求分析1、支持多租户的权限控制
我们在日常工作中不止研发会进行任务的调度,其他的业务部门和厂商都可能会在DS上跑一些任务,如果没有多租户的权限控制的话,那整个集群使用起来都会非常的混乱 。
2、上手简单,支持可视化任务管理
上手简单,因为我们团队内部在很多时候,开发会给到数仓/业务团队去使用,如果任务调度上手非常困难,如果需要进行大量的配置或者编写代码,相对成本就要高很多,相信在很多大数据团队都会存在这个需求,并且有些项目需要快速迭代,所以对于选型的工具必然是上手简单的 。
3、支持对任务及节点状态进行监控
我们对任务调度原生监控主要有两点需求,第一是服务器的监控,可以直接通过任务调度web页面去看,第二是任务调度的监控,针对任务是否成功、执行时间等相关数据和状态能够一目了然 。
4、支持较为方便的重跑、补数
我们数据有实时、周期和离线三部分的,数据特性产生了这个需求,比如对于每15分钟或者每小时的数据任务,如果不能很好的支持重跑和补数的话,对我们影响还是比较大的 。
5、支持高可用HA、弹性扩容、故障容错
集群运维和故障管理方面也是需要支持的 。
6、支持时间参数
有时候需要基于时间参数进行数据的ETL周期操作 。
03 任务调度对比
文章插图
?
Crontab
在Unix和类Unix系统中周期性地执行指令或脚本,用来在Linux上直接执行脚本,但只能用来运行脚本 。
不支持多租户权限管理、平台管理、分发执行等功能,在我们公司中的应用是在一些特点服务器跑一些临时的脚本 。
并且原生Crontab只支持分钟级别的调度,不支持重跑 。
Rundeck
Rundeck是一个基于Java和Grails的开源的运维自动化工具,提供了Web管理界面进行操作,同时提供命令行工具和WebAPI的访问控制方式 。
像Ansible之类的工具一样,Rundeck能够帮助开发和运维人员更好地管理各个节点 。
分为企业版和免费版,免费版对于我们来说功能还是有点欠缺的 。
Quartz
Quartz 是一款开源且丰富特性的任务调度库,是基于Java实现的任务调度框架,能够集成与任何的java应用 。
需要使用Java编程语言编写任务调度,这对于非研发团队而言,是无法去推广使用的 。
经验总结扩展阅读
- 大数据技术之HBase原理与实战归纳分享-中
- 巧用VBA实现:基于多个关键词模糊匹配Excel多行数据
- JuiceFS 元数据引擎选型指南
- 碧蓝航线核心数据怎么得
- 极限挑战岳云鹏当嘉宾哪一期
- Docker | 容器数据卷详解
- 如何优雅的备份MySQL数据?看这篇文章就够了
- 开心消消乐重新安装数据会恢复吗
- 大数据技术之HBase原理与实战归纳分享-上
- 07 ClickHouseClickHouse数据库引擎解析