Firestorm介绍

Firestorm是一个通用的分布式shuffle服务,满足大数据框架在云原生、离线混合等场景的需求,同时解决MR style shuffle在大规模场景下遇到的稳定新和性能问题。

项目采用了Coordinator和Shuffle Server结合的多主多从的分布式架构,对于Shuffle数据能预聚合,降低shuffle过程对于磁盘IO的开销,以此提升Shuffle任务的稳定性。目前支持的存储模式有Local,HDFS,Ozone,以及 Local + HDFS/Ozone混合模式。

Firestorm 适用的场景

  1. 对于计算存储分离的集群架构,由于计算节点本地空间不足,原来的实现方案在shuffle过程中容易遇到磁盘空间不足等问题,Firestorm则能基于存储介质的配置,避免该问题。

  2. 对于Shuffle数据量大,partition数量多的计算任务,原来的实现方案将会导致大量的磁盘随机读写,造成性能损失,Firestorm能基于预聚合的特性,避免该问题。

Firestorm 特点

  1. 支持计算存储分离的集群架构

  2. 支持Partition数据聚合

  3. 各模块实现解耦,支持便捷增加计算引擎以及存储方式,目前项目仅支持Spark计算引擎(版本为2.4.6, 3.1.2)

  4. 支持shuffle数据的强一致性校验,包括数据是否缺失,数据是否匹配

  5. 支持Shuffle Server端配置多种存储

  6. 支持基于http请求获取各项指标

  7. 支持整体架构多活模式

  8. 支持在线升级,且不影响实际使用

Firestorm 项目规划

  1. 优化整体容错性

  2. 优化Shuffle数据读写性能

  3. 支持更多存储介质

  4. 支持更多计算引擎

Firestorm 开源地址

https://github.com/Tencent/Firestorm(复制到浏览器打开或点击阅读原文访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

关注腾讯开源公众号

获取更多最新腾讯官方开源信息!

文章来源于腾讯云开发者社区,点击查看原文