Firestorm介绍
Firestorm是一个通用的分布式shuffle服务,满足大数据框架在云原生、离线混合等场景的需求,同时解决MR style shuffle在大规模场景下遇到的稳定新和性能问题。
项目采用了Coordinator和Shuffle Server结合的多主多从的分布式架构,对于Shuffle数据能预聚合,降低shuffle过程对于磁盘IO的开销,以此提升Shuffle任务的稳定性。目前支持的存储模式有Local,HDFS,Ozone,以及 Local + HDFS/Ozone混合模式。
Firestorm 适用的场景
-
对于计算存储分离的集群架构,由于计算节点本地空间不足,原来的实现方案在shuffle过程中容易遇到磁盘空间不足等问题,Firestorm则能基于存储介质的配置,避免该问题。
-
对于Shuffle数据量大,partition数量多的计算任务,原来的实现方案将会导致大量的磁盘随机读写,造成性能损失,Firestorm能基于预聚合的特性,避免该问题。
Firestorm 特点
-
支持计算存储分离的集群架构
-
支持Partition数据聚合
-
各模块实现解耦,支持便捷增加计算引擎以及存储方式,目前项目仅支持Spark计算引擎(版本为2.4.6, 3.1.2)
-
支持shuffle数据的强一致性校验,包括数据是否缺失,数据是否匹配
-
支持Shuffle Server端配置多种存储
-
支持基于http请求获取各项指标
-
支持整体架构多活模式
-
支持在线升级,且不影响实际使用
Firestorm 项目规划
-
优化整体容错性
-
优化Shuffle数据读写性能
-
支持更多存储介质
-
支持更多计算引擎
Firestorm 开源地址
https://github.com/Tencent/Firestorm(复制到浏览器打开或点击阅读原文访问)
请给项目 一个 Star !
欢迎提出你的 issue 和 PR!
国内镜像地址:
https://git.code.tencent.com/Tencent_Open_Source
(登录后才能访问公开项目)
腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像
关注腾讯开源公众号
获取更多最新腾讯官方开源信息!