关键词:
大数据处理
任务调度
分布式系统
Zookeeper
有向无环图
摘要:
随着大数据时代的到来,如何对海量数据进行处理、分析,从而获取商业价值,已经成为了越来越多公司重点关注的问题,同时也给任务调度带来了不少挑战。首先,在大数据处理中,由于数据处理量极大,单机处理会给企业带来巨大的时间成本;其次,在单个数据处理的工作流中,可能存在工作流内部各个任务之间有上下游依赖的情况,如果仅通过传统的定时任务库如Quartz来处理,则十分麻烦,难以掌控;另外,虽然有诸如Airflow的调度系统利用了有向无环图的概念来构建工作流,但是因为其构建需要通过编程来实现,又形成了较高的使用门槛。针对以上大数据处理任务调度中的问题,以及考虑到实习公司在数据处理中调度规模的使用情况,单工作流可包含上百个任务,日均调度量十万级,因此,设计并实现了一款任务调度系统。采用多Master多Worker分布式系统架构,创建工作流时采用了可视化有向无环图的方式,这两个特点分别能够大幅缩短数据处理的用时以及降低使用门槛。此分布式系统基于分布式协调框架Zookeeper构建,实现了高可用性,保证在系统内,部分组件失效时仍然能够执行任务。由于许多场景下数据处理需要定时进行,因此基于Quartz实现了对定时任务的支持。任务调度系统的Web前后端分别是基于Spring Boot框架以及***前端框架实现,实现了对工作流的管理以及对任务执行日志的查看功能,为运维工程师和应用开发者提供了易于使用的交互界面。任务调度系统在实现对数据处理任务进行调度的基础上,吸取了分布式系统的可扩展性优势,以及采用可视化图模型的表达力和表现力强的优势,使得用户可以更容易的对大数据任务处理进行调度,满足了实习公司在对海量数据进行处理时,对调度系统的功能和性能需求。