咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >面向DAG工作流的分布式任务调度系统的设计与实现 收藏
面向DAG工作流的分布式任务调度系统的设计与实现

面向DAG工作流的分布式任务调度系统的设计与实现

作     者:郭孟然 

作者单位:东南大学 

学位级别:硕士

导师姓名:吴含前;李登高

授予年度:2022年

学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:分布式任务调度 DAG工作流 事件驱动架构 时效性保障 领域驱动设计 

摘      要:互联网行业的兴起促进了数据分析领域的发展,目前企业普遍使用维度建模方法建设数据仓库,用户基于数据仓库研发的多个数据分析任务会相互依赖形成有向无环图(Directed Acyclic Graph,DAG)式工作流,进而促进了任务调度系统的发展。然而随着数据量的增长和用户研发的任务数量的增多,现有的任务调度系统无法保障DAG工作流中高时效性任务按时完成。从系统调度视角分析,一方面多产出字段的上游宽表任务会导致下游任务长时间忙等从而形成单点性能瓶颈,另一方面主流任务调度系统仅支持对单个任务设置调度优先级,而单个任务的优先级变更难以在DAG工作流中生效;从用户运维视角分析,用户难以感知高时效性任务上游数据加工链路中潜在的风险,容易错过最佳应急时间而最终导致任务延期完成。针对上述问题,本文围绕如何保障DAG工作流中高时效性任务按时完成的挑战对以下关键技术展开了研究:(1)针对宽表任务的单点性能瓶颈问题,本文提出了逻辑任务模型。用户可以将多个任务构建为一个逻辑任务供下游任务消费,当逻辑任务的部分内部物理任务运行完成并产出下游任务所依赖的字段后,系统不需要等待整个逻辑任务运行完成便可调度下游任务开始运行。(2)针对DAG工作流中任务优先级失效的问题,本文设计了基线链路推导算法。用户将高时效性任务配置为基线任务后,系统会调用基线链路推导算法查找任务依赖的上游数据加工链路并统一提高链路任务的调度优先级。(3)针对用户难以感知数据加工链路运行异常的问题,本文设计了基线关键路径推导算法。系统通过该算法过滤出基线任务所在数据加工链路中的关键路径,并结合任务的平均运行耗时和当前任务对应实例的实际运行情况预测基线任务能否按时完成,当系统判断基线任务存在延时风险时会及时通知用户进行应急处理。围绕上述关键技术,本文基于领域驱动设计思想将系统划分为多个分布式服务模块,使用事件驱动架构结合etcd、g RPC等技术研发了一个具有高可靠性、高可扩展性的面向DAG工作流的分布式任务调度系统。经部署测试,系统达到预期设计目标。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分