写点什么

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

作者:白鲸开源
  • 2024-11-19
    天津
  • 本文字数:2054 字

    阅读完需:约 7 分钟

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

引言

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

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

业务背景

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



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


挑战

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


  • 高可靠性:确保在各种故障情况下数据不丢失,保障数据一致性和任务的稳定运行。

  • 高吞吐量:处理大规模数据流,实现高并发和大批量数据传输。

  • 低延迟:满足实时数据处理和快速响应的业务需求。

  • 易维护性:简化配置和自动化监控,减轻维护负担,便于快速发现和解决故障,确保系统的长期可用性。

架构演进之路

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



早期架构一览

  • 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 的任务和配置管理。



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


1. 架构限制


  • 做不到端到端的数据集成 2. 协调者的瓶颈问题

  • 心跳超时:worker 与协调者之间的心跳超时,会触发任务重新平衡,导致任务暂时中断。

  • 心跳压力: worker 与协调者进行心跳同步,协调者跟踪 worker 状态,管理大量任务的状态元数据。

  • 协调者失败:协调者宕机会影响任务的分配和重新分配,造成任务失败和 处理效率下降。3. 任务重分配 (Rebalance) 的影响

  • 任务暂停和恢复:每次重新分配任务时,会暂停任务,然后重新分配,导致短暂的任务中断。

  • Rebalance 风暴:如果多个 worker 节点频繁加入或退出集群,或者因为网络抖动导致心跳超时,可能会引发频繁的 Rebalance,从而大幅影响任务处理效率,导致延迟。


鉴于这样的缺陷,58 集团在 2023 年引入了 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. 开发自动迁移工具

  4. 自动生成任务配置,根据 kafka connect 配置生成对应的 seatunnel 任务配置

  5. 下掉原任务,重置 offset,启动新任务

  6. 验证和检查

性能调优

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


  • 增加 Pulsar Sink Connector:提高吞吐量。

  • 支持数组数据:增强 HbaseSink 的兼容性。

  • 支持设置过期时间:优化 RedisSink。

  • 提高 PulsarSource 吞吐量:优化文件连接器的压缩方式。

  • 修复 KafkaSource 的解析问题:提高 Kafka 客户端的配置灵活性。


监控和运维自动化

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


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




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



后续规划

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


  • 持续完善智能诊断能力:通过机器学习和人工智能技术,提高故障诊断的准确性和效率。

  • 上云和容器化升级:将数据集成平台迁移到云环境,实现容器化部署,提高资源利用率和灵活性。

结语

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



用户头像

白鲸开源

关注

一家开源原生的DataOps商业公司。 2022-03-18 加入

致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

评论

发布
暂无评论
高效处理日均5000亿+数据:58集团基于Apache SeaTunnel的数据集成平台架构优化_开源_白鲸开源_InfoQ写作社区