使用 Apache DolphinScheduler 构建和部署大数据平台,将任务提交至 AWS 的实践经验

作者介绍

李庆旺 - 软件开发工程师,思科

引言

大家好,我是李庆旺,来自思科的软件开发工程师。我们的团队已经使用Apache DolphinScheduler搭建我们自己的大数据调度平台近三年时间。从最初的2.0.3版本开始至今,我们与社区一同成长,今天给大家分享的技术思路是基于3.1.1版本进行的二次开发,增加了一些社区版本中未包含的新功能。

今天,我将分享我们如何使用Apache DolphinScheduler构建大数据平台,将我们的任务提交部署到AWS上,期间遇到的一些挑战和我们的解决方案。

架构设计与调整

初始我们所有的服务均部署在Kubernetes(K8s)上,包括API、Alert、以及Zookeeper(ZK)、Master和Worker等组件。

file

大数据处理任务

我们对Spark、ETL和Flink等任务进行了二次开发:

  • ETL任务:我们团队开发了一种简单的拖拉拽形式的工具,用户可以通过这种方式快速生成ETL任务。
  • Spark支持:早期版本仅支持在Yarn上运行的Spark,我们通过二次开发使其支持在K8s上运行。目前社区的最新版本已支持Spark on K8s。
  • *Flink 二次开发: 同样,我们新增了Flink On K8s的流任务,同时还有SQL任务和Python任务On K8s的支持。

支持Job上AWS

随着业务的扩展和数据政策的需求,我们面临必须在不同地区运行数据任务的挑战。这需要我们构建一个能够支持多集群的架构。以下是我们的解决方案和实施过程的详细描述。

file

我们的当前架构包括一个集中控制终端,即一份单一的Apache DolphinScheduler服务,它负责管理多个集群。这些集群分布在不同的地理位置,例如欧盟和美国,以遵守当地的数据政策和隔离需求。

架构调整

为了满足这一需求,我们进行了如下调整:

  • 保持Apache DolphinScheduler服务的集中管理:我们的DolphinScheduler服务仍然部署在自建的Cisco Webex DC中,保持了管理的集中性和一致性。
  • 支持AWS EKS集群:同时,我们扩展了架构的能力,以支持多个AWS EKS集群。这样,可以满足任务运行在EKS集群上的新业务需求,而不影响其他Webex DC集群的运行和数据隔离。

file

通过这种设计,我们能够在保证数据隔离和政策遵守的同时,灵活应对不同的业务需求和技术挑战。

接下来介绍下如何处理Apache DolphinScheduler在Cisco Webex DC中运行任务时的技术实现和资源依赖。

file

资源依赖和存储

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

Docker 镜像
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DolphinScheduler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值