作者介绍
李庆旺 - 软件开发工程师,思科
引言
大家好,我是李庆旺,来自思科的软件开发工程师。我们的团队已经使用Apache DolphinScheduler搭建我们自己的大数据调度平台近三年时间。从最初的2.0.3版本开始至今,我们与社区一同成长,今天给大家分享的技术思路是基于3.1.1版本进行的二次开发,增加了一些社区版本中未包含的新功能。
今天,我将分享我们如何使用Apache DolphinScheduler构建大数据平台,将我们的任务提交部署到AWS上,期间遇到的一些挑战和我们的解决方案。
架构设计与调整
初始我们所有的服务均部署在Kubernetes(K8s)上,包括API、Alert、以及Zookeeper(ZK)、Master和Worker等组件。

大数据处理任务
我们对Spark、ETL和Flink等任务进行了二次开发:
- ETL任务:我们团队开发了一种简单的拖拉拽形式的工具,用户可以通过这种方式快速生成ETL任务。
- Spark支持:早期版本仅支持在Yarn上运行的Spark,我们通过二次开发使其支持在K8s上运行。目前社区的最新版本已支持Spark on K8s。
- *Flink 二次开发: 同样,我们新增了Flink On K8s的流任务,同时还有SQL任务和Python任务On K8s的支持。
支持Job上AWS
随着业务的扩展和数据政策的需求,我们面临必须在不同地区运行数据任务的挑战。这需要我们构建一个能够支持多集群的架构。以下是我们的解决方案和实施过程的详细描述。

我们的当前架构包括一个集中控制终端,即一份单一的Apache DolphinScheduler服务,它负责管理多个集群。这些集群分布在不同的地理位置,例如欧盟和美国,以遵守当地的数据政策和隔离需求。
架构调整
为了满足这一需求,我们进行了如下调整:
- 保持Apache DolphinScheduler服务的集中管理:我们的DolphinScheduler服务仍然部署在自建的Cisco Webex DC中,保持了管理的集中性和一致性。
- 支持AWS EKS集群:同时,我们扩展了架构的能力,以支持多个AWS EKS集群。这样,可以满足任务运行在EKS集群上的新业务需求,而不影响其他Webex DC集群的运行和数据隔离。

通过这种设计,我们能够在保证数据隔离和政策遵守的同时,灵活应对不同的业务需求和技术挑战。
接下来介绍下如何处理Apache DolphinScheduler在Cisco Webex DC中运行任务时的技术实现和资源依赖。

资源依赖和存储
由于我们所有的任务都在Kubernetes(K8s)上运行,对我们来说,以下几点是至关重要的:

最低0.47元/天 解锁文章
1295

被折叠的 条评论
为什么被折叠?



