2022年2月22日,在今天这个特殊的日子里,历经多年持续迭代和千万周期实例并发调度考验的Taier(太阿)终于开源了!
Github开源地址:
https://github.com/DTStack/Taier
官方文档地址:
https://dtstack.github.io/Taier/
这是袋鼠云开源项目的重要里程碑事件,代表着袋鼠云技术研发团队对开源的决心。我们希望通过技术分享,帮助更多人探索大数据平台的业务场景,同时也由衷欢迎更多开发者参与到社区中来,Committer虚位以待!
|缘起:太阿出鞘
Taier的命名,源自中国十大名剑太阿。
Taier Logo
太阿是春秋战国时期楚国的镇国至宝,由铸剑名师欧冶子和干将联手打造。相传楚国在生死存亡之际,靠太阿剑气击败晋国大军,被世人誉为诸侯威武之剑,象征了威武不屈、内心强大的实力,正如Taier强悍稳定的任务调度能力,每天可处理15w+超庞大任务体量,不但大大降低企业ETL的开发成本,还能有效保障大数据平台的平稳运行,功能强大,一如太阿剑威力无穷。
|亮剑:Taier诞生
Taier的诞生,与时代的发展息息相关。
如今,数字化转型已成为全球浪潮,大数据平台建设成为新时代必不可少的基础设施。随着数字化转型的深入,很多企业在建设数据中台过程中,将涉及大量数据采集、处理、计算等方面的工作,需求的不断叠加,出现了单个系统难以满足复杂业务的情况,迫切需要一种兼容多个子系统互相协作的任务调度系统协调,正是基于这种背景,Taier分布式DAG任务调度系统应运而生。
Taier是一个开箱即用的分布式可视化的DAG任务调度系统,技术开发人员可以在Taier 直接进行业务逻辑的开发,而不用关心任务错综复杂的依赖关系与底层的大数据平台的架构实现,将工作的重心更多地聚焦在业务之中。
Taier(太阿)调度系统架构图
在Taier Logo的设计上,我们围绕系统本身开放包容、简单易用的特性,在设计中融入了积木、剑、蜂巢等元素。主体Logo由四块积木交叠而成,形若利剑,有组合,有分离,传达开源项⽬开放包容的理念,同时也表现Taier采⽤分布式模式——具有很强的解耦性、扩展性。
Taier Logo创意阐释
Logo底层采⽤六边形蜂巢结构,六边形蜂巢是大自然中最省劳动⼒、最省材料、最稳定的排列⽅式,其六条对称轴可以经过各种旋转⽽不改变形状,选用六边形作为Logo的边框,意在传达Taier降低开发成本、提⾼⼤数据平台稳定性的特点。
|亮点:Taier功能优势
作为一个分布式可视化的DAG任务调度系统,太阿Taier脱胎于袋鼠云的一站式大数据开发平台——数栈DTinsight,技术实现来源于数栈分布式调度引擎DAGScheduleX,DAGScheduleX是数栈产品的重要基础设施之一,负责大数据平台所有任务实例的调度运行。太阿Taier是DAGScheduleX的重要枢纽,负责调度日常庞大的任务体量,多年的持续迭代与沉淀,造就了太阿Taier六大核心优势:
一、超高的稳定性
- 单点故障:去中心化的分布式模式
- 高可用方式:Zookeeper
- 过载处理:分布式节点+ 两级存储策略 + 队列机制。每个节点都可以处理任务调度与提交;任务多时会优先缓存在内存队列,超出可配置的队列最大数量值后会全部落数据库;任务处理以队列方式消费,队列异步从数据库获取可执行实例
- 实战检验:得到数百家企业客户生产环境实战检验
二、超强的易用性,一站式任务调度
- 支持大数据作业Spark、Flink、Hive、MR的调度
- 支持众多的任务类型,目前支持Spark SQL、Flinkx;后续开源支持:SparkMR、PySpark、FlinkMR、Python、Shell、Jupyter、Tersorflow、Pytorch、HadoopMR、Kylin、Odps、SQL类任务(MySQL、PostgreSQL、Hive、Impala、Oracle、SQLServer、TiDB、greenplum、inceptor、kingbase、presto)
- 可视化工作流配置:支持封装工作流、支持单任务运行,不必封装工作流、支持拖拽模式绘制DAG
- DAG监控界面:运维中心、支持集群资源查看,了解当前集群资源的剩余情况、支持对调度队列中的任务批量停止、任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然
- 调度时间配置:可视化配置
- 多集群连接:支持一套调度系统连接多套Hadoop集群
三、超凡的兼容性,支持多版本引擎
- 支持Spark 、Flink、Hive、MR等引擎的多个版本共存,例如可同时支持Flink1.10、Flink1.12(后续开源)
四、安全可靠,支持Kerberos
- Spark、Flink、Hive
五、丰富的系统参数
- 支持3种时间基准,且可以灵活设置输出格式
六、卓越的扩展性,支持多种方式扩容
- 设计之处就考虑分布式模式,目前支持整体Taier水平扩容方式;后续开源支持:Scheduler/Worker分离部署模式。
- 调度能力随集群线性增长
|终端:Taier用户界面
|展望:未来迭代计划
Taier调度平台是数据平台框架中的一个组件,可以满足企业日常数据分析、处理、展示需要。未来随着业务的接入和数据规模的增大,Taier将持续提升用户体验,计划将优化:
- 任务类型:支持SparkMR、PySpark、FlinkMR、Python、Shell、Jupyter、Tersorflow、Pytorch、HadoopMR、Kylin、Odps、SQL(MySQL、PostgreSQL、Hive、Impala、Oracle、SQLServer、TiDB、greenplum、inceptor、kingbase、presto
- 调度方式:同时支持Yarn/K8s
- 计算引擎:同时支持Spark-2.1.x/2.4.x、Flink-1.10/1.12(与Flink后续版本)
- 部署方式:同时支持Scheduler/Worker整合与分离部署
- 功能支持:支持交易日历、事件驱动
- 外部系统对接:支持Taier系统对接外部调度系统(AZKBAN、Control-M、DS调度)
|结语:
Taier 使用了 Apache 的多个开源项目如Flink、Spark 作为计算组件实现数据同步和批处理计算,得益于开源社区才有如今的太阿 Taier。正因为Taier 取之于社区, 所以我们希望通过开源此项技术的方式,回馈社区,共同弘扬“Community Over Code“的Apache文化。未来,我们仍将秉承兼容并包与开放多样化的心态,将继续推出Taier 后续版本,欢迎更多的公司和个人参与到开发者队伍中来,让Taier社区更加健壮、健康的发展,让更多人享受开源带来的技术革命!