首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache DolphinScheduler 在大数据环境中的应用与调优

下午好,我叫李进勇,是政采云数据平台架构师,在政采云主要负责大数据底层架构和数据工程化方面,同时也是 Dolphinscheduler的PMC成员。今天我将重点分享关于Apache Dolphinscheduler 2.0.9版本中一些优秀的功能。选择这个主题的原因是因为在2.0.X版本的演进中,我们致力于打造一个稳定且功能强大的工作流编排调度平台,使得工作流编排和批处理调度变得更加稳定可靠,因此将此主题命名为“聚焦调度”。

文|李进勇

编辑整理|曾辉

讲师介绍

李进勇

Apache DolphinScheduler PMC

本文主要涉及三大主题:首先,探讨常见的工作流配置模式,其次,介绍DS 2.0.X版本的重要功能特性,最后,分享生产环境下的调优实践。

1

工作流配置模式

在Apache DolphinScheduler中,工作流配置模式以其多样性和灵活性而受到开发者喜爱。

虽然这些配置模式可能已经为大家所熟知,但本文仍会对其进行简单介绍。

主要的配置模式包括单一DAG模式、子工作流串联模式、按数据仓库层级调度工作流依赖模式以及按数据仓库层级调度任务跑批模式。

这些模式在政采云等平台上得到了广泛应用,因此我们发现并修复了其中许多隐藏的问题,也向开源社区进行了反馈。

单一DAG模式是一种常见的配置模式,它能使任务在一个DAG中按照特定的配置进行运行。

尽管此模式较为简单并易于理解,但当任务数量庞大时,维护的困难性就会显现出来。在DS的2.0版本及之后,DAG的更新变成了一个大型事务操作,这对数据库压力较大。

按数据仓库层级调度工作流依赖模式则相对复杂。

它与数据仓库规范相对应,例如按照常见的数据仓库分层如ODS层、DW层、DWS层和ADS层,通过串联这些层级的子工作流来进行调度。

在整体批处理过程中,这种模式可能导致计算集群的空闲度较高。

按数据仓库层级调度任务跑批模式则更具灵活性,它按照依赖节点进行任务调度,而非按子工作流配置。

这种模式可以按照数据仓库分层及数据域来设置工作流,因此某一非关键任务的阻塞不会影响其他任务。

这些配置模式都有各自的特点和适用场景。对于不同的模式,我们也会遇到一些问题和挑战。

例如,在工作流调度时,多个工作节点的分配不均衡可能会导致计算资源的浪费。

此外,当某个非关键任务卡住或失败时,如何处理依赖关系也是一个需要解决的问题。在处理大量YARN日志时,任务停止也可能成为一个问题。

在2.0版本的演进过程中,我们发现了这些问题并做出了相应的解决方案。

2

2.0.X 版本功能特性

接下来,让我们深入探讨DS 2.0.X版本的几个重要功能特性。这些功能包括master召回机制、依赖全任务的强制成功更改、工作流停止的事件通知以及处理极端情况下的问题。

在工作流调度过程中,可能出现任务分配不均衡的情况,这会导致计算资源的浪费。

为解决这一问题,我们引入了master召回机制,通过重新分配任务来解决任务分配不均衡的问题。

另一重要的功能特性是依赖全任务的强制成功更改。

在之前的版本中,我们遇到过某个任务需要人工介入的情况,然而其所在的工作流成功,导致下游依赖的任务得以执行,而上游所需的任务却未执行。

为解决这一问题,我们对工作流的依赖检测方式进行了改进,将其从依赖工作流更改为依赖任务。

工作流停止的事件通知功能也得到了重要的改进。在此前的反馈中,有人提到任务停止时任务状态未得到更改的问题。

我们对任务停止相关代码进行了重构,并加入了新的处理流程,以解决任务停止时的状态更新问题。

最后,我们还修复了DS 2.0.X版本中出现的其他一些问题,比如工作流执行完成子工作流后出现的问题、任务发送失败后无法重新提交的问题以及工作流任务失败时重试时间无效等问题。

针对这些问题,我们进行了有效的修复和改进,提高了系统的稳定性和可靠性。

3

生产环境下的调优

第三部分将分享一些生产环境中的调优经验,包括调度历史的管理、版本清理、调优理念和集群配置。此外,还会提供一些参数和情况的讨论。

在生产环境中,由于工作流定义、任务关系和任务定义的版本历史保存,长期保留这些数据会导致日志表越来越大,进而影响批处理的性能。

因此,建议定期清理版本,例如在政采云中保留最近的20个版本。同样,每天的批处理运行会使工作流实例和任务实例表不断增长,建议进行清理。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OBbcUTJ1h0OPOH95QCWT8kSQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券