首页 > 其他分享 >高效处理日均5000亿+数据:58集团基于Apache SeaTunnel的数据集成平台架构优化

高效处理日均5000亿+数据:58集团基于Apache SeaTunnel的数据集成平台架构优化

时间:2024-11-18 14:18:19浏览次数:1  
标签:集成 SeaTunnel 5000 58 平台 任务 Apache 数据

视频链接:58集团大数据平台基于Apache SeaTunnel的架构演进
https://www.bilibili.com/video/BV19GUPYcEgB/?vd_source=e139ecc995ab936267a7991b9de55f6c

引言

在数字化时代,数据已成为企业最宝贵的资产之一。58集团作为中国领先的生活服务平台,其大数据部在数据集成平台的建设上不断探索与创新。本文将详细介绍58集团基于Apache SeaTunnel的数据集成平台的架构演进、优化策略以及未来规划。

数据集成平台的背景与挑战

业务背景

58集团业务广泛,随着业务的快速发展,来自招聘、房产、二手房、二手市场、本地服务和信息安全等业务领域的数据规模大幅上涨,58集团需要打通不同数据源之间的数据流动和汇聚,实现数据的统一管理、流转和共享。这不仅涉及到数据的收集、分发和存储,还包括离线计算、跨集群同步和用户画像等应用场景。

file

目前,58集团日均处理消息数量达到5000亿+,峰值处理消息数达2000万+,任务数达1600+。处理如此大规模的数据量,58集团面临着巨大的挑战。

file

挑战

在打通不同数据源之间的数据流动和汇聚,实现数据的统一管理、流转和共享的过程中,58集团面临的挑战包括:

  • 高可靠性:确保在各种故障情况下数据不丢失,保障数据一致性和任务的稳定运行。
  • 高吞吐量:处理大规模数据流,实现高并发和大批量数据传输。
  • 低延迟:满足实时数据处理和快速响应的业务需求。
  • 易维护性:简化配置和自动化监控,减轻维护负担,便于快速发现和解决故障,确保系统的长期可用性。

架构演进之路

58集团数据集成平台的架构经历了多次演进,以适应不断变化的业务需求和技术发展。

file

早期架构一览

  • 2017年:使用Flume进行平台集成管理。
  • 2018年:引入Kafka Connect 1.0。
  • 2020年:使用Kafka Connect 2.4版本,实现增量负载均衡和CDC(Change Data Capture)。
  • 2023年:引入Apache SeaTunnel,集成到实时计算平台,扩展各种Source/Sink。

2017年-2018年,58集团数据集成平台采用了Kafka Connect架构,基于Kafka的数据集成,扩展性和分布式处理以横向扩展的方式进行,支持在多节点上运行Worker和Task;Worker故障时自动将任务重新分配到其他Worker,可实现高可用;同时可进行自动化的偏移量管理,以及Rest API的任务和配置管理。

file

然而,随着业务量的扩展和场景多样化,这套架构陷入了瓶颈:

1. 架构限制

  • 做不到端到端的数据集成
    2. 协调者的瓶颈问题
  • 心跳超时:worker与协调者之间的心跳超时,会触发任务重新平衡,导致任务暂时中断。
  • 心跳压力: worker与协调者进行心跳同步,协调者跟踪worker状态,管理大量任务的状态元数据。
  • 协调者失败:协调者宕机会影响任务的分配和重新分配,造成任务失败和 处理效率下降。
    3. 任务重分配 (Rebalance) 的影响
  • 任务暂停和恢复:每次重新分配任务时,会暂停任务,然后重新分配,导致短暂的任务中断。
  • Rebalance 风暴:如果多个worker节点频繁加入或退出集群,或者因为网络抖动导致心跳超时,
    可能会引发频繁的 Rebalance,从而大幅影响任务处理效率,导致延迟。

鉴于这样的缺陷,58集团在2013年引入了Apache SeaTunnel,集成到实时计算平台,实现了自由扩展各种Source/Sink。

当前架构

当前,58集团基于Apache SeaTunnel引擎,将Source数据源(Kafka、Pulsar、WMB、Hive等),经过SeaTunnel自带的Transform功能,Sink到目的数据库(Hive、HDFS、Kafka、pulsar、wmb、MySQL、SR、Redis、HBASE、Wtable、MongoDB等),实现了高效的任务管理、状态管理、任务监控、智能诊断等功能。

平滑迁移和性能调优

平滑迁移

引入Apache SeaTunnel时,58集团需要对数据集成平台进行平滑迁移,以减少对用户或业务的影响,并保证数据的一致性,做到格式一致、路径一致和数据不丢失。

这个目标让58集团面临着挑战,需要应对迁移的成本和风险
,如了解和确认每个任务数据源格式,以及迁移涉及多个步骤,复杂且耗时长。

为此,58集团采取了以下措施:

  1. 对于源,增加RawDeserializationSchema,兼容非结构化数据
  2. 对于目的地,例如hive使用hdfs sink,兼容分区加载和路径
  3. 开发自动迁移工具
    • 自动生成任务配置,根据kafka connect配置生成对应的seatunnel任务配置
    • 下掉原任务,重置offset,启动新任务
    • 验证和检查

性能调优

58集团还对数据集成平台进行了多项性能优化,包括:

  • 增加Pulsar Sink Connector:提高吞吐量。
  • 支持数组数据:增强HbaseSink的兼容性。
  • 支持设置过期时间:优化RedisSink。
  • 提高PulsarSource吞吐量:优化文件连接器的压缩方式。
  • 修复KafkaSource的解析问题:提高Kafka客户端的配置灵活性。

file

监控和运维自动化

此外,58集团还通过监控和运维自动化来提高数据集成平台的稳定性和效率:

  • 任务监控:实时监控任务状态,快速发现并解决故障。

file

file

  • 运维自动化:通过自动化工具减少人工干预,提高运维效率。

file

后续规划

58集团对数据集成平台的未来发展有着明确的规划:

  • 持续完善智能诊断能力:通过机器学习和人工智能技术,提高故障诊断的准确性和效率。
  • 上云和容器化升级:将数据集成平台迁移到云环境,实现容器化部署,提高资源利用率和灵活性。

结语

58数据集成平台的架构演进和优化是一个不断迭代和创新的过程。通过不断的技术探索和实践,58集团成功构建了一个基于Apache SeaTunnel的高效、稳定、可扩展的数据集成平台,为业务发展提供了强有力的数据支持。未来,58集团将继续在数据集成领域深耕,为用户提供更优质的服务。

本文由 白鲸开源 提供发布支持!

标签:集成,SeaTunnel,5000,58,平台,任务,Apache,数据
From: https://www.cnblogs.com/seatunnel/p/18552539

相关文章

  • 【迅为】瑞芯微RK3588开发板RK3568开发板区别及优势
     RK3568开发板   瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3......
  • 小米笔记本Pro15锐龙版(R7 5800H/15G RAM/512G SSD)拆机单固态硬盘SSD扩容,无损迁移Win
    1.准备工作1.1梅花头螺丝刀2.72米 1.2新的固态硬盘三星980nvmem2固态硬盘,官方说读取速度能到3.5G,实测能到3.3G。小米笔记本Pro15锐龙版的M.2插槽支持的是PCIE3.0,三星980支持的就是PCIE3.0,够用了。三星980Pro支持的是PCIE4.0,读取能到7G,但接口不支持,只能降到PCIE......
  • 10月回顾 | Apache SeaTunnel社区动态与进展一览
    各位热爱ApacheSeaTunnel的小伙伴们,社区10月份月报来啦,请查收!这里将记录ApacheSeaTunne社区每月动态和进展,欢迎关注。月度Merge之星感谢以下小伙伴上个月为ApacheSeaTunnel所做的精彩贡献(排名不分先后):@Hisoka-X,@prclin,@JohnTeslaa,@happyboy1024,@jiamin13579,@luck......
  • 10月月报 | Apache DolphinScheduler进展总结
    各位热爱ApacheDolphinScheduler的小伙伴们,社区10月份月报更新啦!这里将记录DolphinScheduler社区每月的重要更新,欢迎关注!月度Merge之星感谢以下小伙伴10月份为ApacheDolphinScheduler所做的精彩贡献(排名不分先后):@shouwangyw,@liunaijie,@binitshrest,@wangxj3,@Sblood......
  • 迅为RK3588开发板Android12动态替换开机logo
    性能强iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构,主频高达2.4GHz。 四核心架构GPU集成MaliG610MP4四核GPU、支持OpenGLES1.1、2.0、3.2,OpenCL2.2和Vulkan1.2。带有MMU的特殊2D硬......
  • Apache-doris-2.1.7-安装体验
    软件下载:https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.7-bin-x64.tar.gz安装配置jdk环境:tar-zxvfjdk-8u202-linux-x64.tar.gz-C/usr/local/tee-a/etc/profile<<EOFexportJAVA_HOME=/usr/local/jdk1.8.0_202exportPATH=\$PATH:......
  • 代码随想录算法训练营day45| 115.不同的子序列 583. 两个字符串的删除操作 72.
    学习资料:https://programmercarl.com/0115.不同的子序列.html#算法公开课动态规划系列之编辑距离问题学习记录:115.不同的子序列(当遇到相同字母时,可以选择也可以不选;刚开始没看懂;dp[i][j]是对应i-1结尾和j-1结尾,这样的目的是方便第一行和第一列初始化)点击查看代码classSolut......
  • 架构师之路-学渣到学霸历程-58
    Nginx的反向代理实验今天分享的实验其实就是一个变形;变形uri看看nginx的配置有什么区别;这个就更加绕,是比较不同的配置路径会有什么的区别?来看看这个变形会得出什么的效果1.首先配置后端服务器的资源首页资源–>192.168.75.73的配置如下#设置别名-->偷懒而已[root@Lin......
  • 解决 SQLyog 连接 MySQL 8.0.24 报错 2058 的方法(Windows 平台)
    解决SQLyog连接MySQL8.4.2报错2058的方法(Windows平台)在使用SQLyog连接MySQL8.4.2时,你可能会遇到错误代码2058。这个错误通常是由于MySQL8.0默认使用的caching_sha2_password身份验证插件与SQLyog不兼容导致的。本文将详细介绍如何在Windows平台上解决这......
  • Dockerfile构建镜像(练习一Apache镜像)(5-1)
    目录指令详解本章实例:1.创建工作目录2.在工作目录中创建并编写Dockerfile文件(1)保证拥有centos基础镜像3.编写相关执行脚本##添加启动镜像启动执行脚本#设置centos.repo仓库文件Docker主机需要搭建yum仓库4.使用Dockerfile生成镜像 5.使用新镜像运行容器测试#查......