腾讯自研分布式远程shuffle服务firestorm正式开源

CSDN云计算 CSDN云计算     2023-01-30     399

关键词:

11月4日,在2021腾讯数字生态大会上,腾讯宣布将开源自主研发的分布式远程Shuffle服务Firestorm。该服务的开源不但可以助推分布式计算的云原生部署,还能解决大数据分布式计算过程中的痛点,提升计算资源的利用率。

在分布式计算领域,Shuffle过程由于存在着磁盘IO随机读写问题,一直是分布式计算任务的性能瓶颈,除了降低计算任务的运行效率,还降低硬件资源的利用率。同时,由于Shuffle过程对于本地磁盘有容量需求(如Spark计算引擎),对于计算引擎的云原生化也制造了阻碍。近年来,云原生的需求不断增加,而和大数据息息相关的分布式计算领域也在不断探索如何云原生化这样的课题。业界对于Shuffle过程存在的问题越来越关注,改善的需求也越来越迫切,不但出现了各种解决方案,部分国外厂商也开源了相关的实现。

腾讯大数据团队在推进云原生的过程中也遇到了相同的问题,由于缺乏一个通用,便于扩展的远程Shuffle服务的开源方案,团队提议进行自研并最终开源回馈社区,Firestorm则在这样的背景下应然而生。相比已经开源的同类服务,腾讯Firestorm能适用于更多的应用场景,更灵活的接入各类分布式计算引擎,还能支持各种不同的存储系统。

为了达到支持云原生的部署模式并提升计算资源的使用率,Firestorm具备诸多特性:

1. 支持多种集群部署模式。Firestorm将Shuffle数据存储在了远程,因此计算集群将不再需要大量存储空间。同时,大数据集群的部署模式也变得更加灵活,基于Firestorm,计算存储分离,计算存储混布,在线离线混布等部署模式都得到很好的支撑。

2. 支持Shuffle数据聚合。Firestorm通过服务端对Shuffle数据进行分拣操作,从而达到了数据聚合的目的,大幅降低了在Shuffle过程中对于磁盘的随机访问。同时,Firestorm在客户端和服务端都使用了数据缓存机制,最大化利用内存资源,从而降低了磁盘访问的性能损耗。

3. 灵活适配各种计算引擎和存储方式。Firestorm在实现上采用了计算引擎和存储方式的解耦,因此能通过实现引擎侧接口,灵活支持各类计算引擎(如Spark,MR等)。同样,对于Shuffle数据的存储方式也能支持,如本地文件,HDFS文件及混合模式等。

4. 支持Shuffle数据的正确性校验。Firestorm以Block为单位存储Shuffle数据,对于每个Block都会存储CRC值等元数据。基于这些元数据,不但能过滤无效数据,还能检测数据在整条链路的传递过程中是否缺失,完整,保障计算任务执行过程中的数据正确性。

5. 支持整体架构多活模式。Firestorm采用了主从架构,能更好的管理集群的状况,在任务调度过程中也能采用更灵活的调度方式,提高整体集群资源利用率。为了满足服务高可用,对于主节点还增加了主-备多活模式,提升了集群服务的稳定性。

6. 支持多种指标监控。Firestorm对于集群的运行状况,采集了大量的运行时指标,基于这些指标能实时掌握集群的负载及健康状况,在使用过程中及时准确地发现问题,便于问题的排查。

7. 支持服务在线升级。Firestorm具备节点黑名单功能,客户度和服务端也采用了版本匹配机制。基于这些特征,Firestorm能实现在生产环境在线升级,同时做到应用无感知,增强了生产的实用性。

目前Firestorm在腾讯内部已经在近万台规模的在线离线混布集群落地,每天支撑近5W的分布式计算作业,每天的Shuffle数据量接近2PB,已经达到了初期制定的第一阶段目标,具备了相当的生产环境成熟度。除此以外,Firestorm在Shuffle数据量较大的分布式计算任务中能显著提升性能和成功率,有效支撑现网Shuffle量100TB+的分布式作业。

腾讯大数据团队表示:“将腾讯自主研发的分布式远程Shuffle服务Firestorm开源,不仅可以将腾讯在大数据分布式计算领域的技术和经验和全球开发者分享,还能够汲取该领域在全球范围内的优秀理念,最终推动分布式计算领域在云原生时代的进一步发展。” 未来团队还会进一步对其优化,在开源后,腾讯也将和社区的开发者一起对Firestorm不断完善。

开源版本地址

https://github.com/Tencent/Firestorm

欢迎大家关注和star,同时也欢迎各位优秀的开发者加入腾讯大数据研发团队。

分布式云时代,腾讯云为何自研操作系统

云计算领域,正在发生巨大变革。在前云计算时代,服务器是每个互联网企业都绕不开的坎,那时我们几乎所有的业务都要围绕着成群的“铁盒子”,要准备绝对安全的机房,要调节机房温度及时散热,还... 查看详情

浅析腾讯云分布式高可靠消息队列服务cmq架构

在分布式大行其道的今天,我们在系统内部、平台之间广泛运用消息中间件进行数据交换及解耦。CMQ是腾讯云内部自研基于的高可靠、强一致、可扩展分布式消息队列,在腾讯内部包括微信手机QQ业务红包、腾讯话费充值、广告... 查看详情

腾讯云数据库自研内核全新升级新架构比原先性能提升20%

...。目前,新一代内核TXSQL已应用于腾讯云数据库MySQL、分布式数据库TDSQL、云原生数据库TDSQL-C等多款主流云数据库产品中。新一代数据库内核不仅对性能带来了较大的提升,同时也提供了如闪回查询、缓存信息同步 查看详情

腾讯云分布式高可靠消息队列cmq架构

...rticle/126来源:腾云阁 https://www.qcloud.com/community 在分布式大行其道的今天,我们在系统内部、平台之间广泛运用消息中间件进行数据交换及解耦。CMQ是腾讯云内部自研基于的高可靠、强一致、可扩展分布 查看详情

opencloudos9.0发布:首个全自研服务器操作系统

...全自研社区9.0版本(以下简称OC9.0)。据了解,该版本由腾讯等十余家企业共同开发并长期维护,其内核及用户态软件均为自主选型、独立演进,在操作系统发行版的全链路均实现自主可控。​操作系统等基础软件是信息技术的... 查看详情

腾讯自研新一代av1编解码器

编者按:近年来,腾讯云在编解码领域投入了许多,不同于许多厂商基于开源方案做增强,腾讯从2017年就开始自研编解码器包括现在的AV1。LiveVideoStackCon2022音视频技术大会上海站邀请到腾讯云香农实验室编解码器... 查看详情

如何远程连接腾讯云服务器?

腾讯云提供的连接方式分为3种:1、Windows系统。可以用远程桌面连接,你本地电脑点击,开始-运行-输入mstsc,弹出的框里,填IP和账号密码信息,登陆就可以;2、Linux系统。可以通过ssh或者putty来连接。3、腾讯云用户管理中心提... 查看详情

把腾讯搬上云:云服务器cvm的半部进化史

6月16日,腾讯对外宣布自研业务已实现全面上云,三年上云规模已经突破5000万核,累计节省成本超过30亿。这意味着包括QQ、微信、腾讯视频、王者荣耀等在内的腾讯业务,已经实现和腾讯云百万级外部客户一样&#... 查看详情

linux❀rhce自研教学笔记-redhat8.2dns服务教研笔记(代码片段)

...ystem域名系统:它作为将域名和IP地址相互映射的一个分布式数据库&#x 查看详情

linux❀rhce自研教学笔记-redhat8.2dns服务教研笔记(代码片段)

...ystem域名系统:它作为将域名和IP地址相互映射的一个分布式数据库&#x 查看详情

cynosdb技术详解——架构设计

本文由腾讯云数据库发表前言CynosDB是新一代分布式数据库,100%兼容MySQL和PostgreSQL,支持存储弹性扩展,一主多从共享数据,性能更是超越社区原生MySQL和PostgreSQL。CynosDB采用sharestorage架构,其弹性扩展和高性价比的基石则是CynosD... 查看详情

sparkshuffle服务和客户端

BlockTransferServiceSpark是分布式部署的,每个Task最终都运行在不同的机器节点上。map任务的输出结果直接存储到map任务所在的机器的存储体系中,reduce任务很可能不在同一台机器上运行,所以需要远程下载map任务的中间... 查看详情

腾讯云的windows服务器用啥软件可以登录远程桌面?

能帮答一下么参考技术A腾讯云windows的云服务器或者VPS都可以用超级VPS管理器进行远程桌面的连接,建议去官网下载,别下载到假的。本回答被提问者采纳 参考技术Bwin+R输入mstsc就可以远程上去管理了不需要装软件 查看详情

首发速学腾讯云数据库tdsql(postgresql版)训练营强势来袭

 腾讯云TDSQL是腾讯自研的企业级分布式数据库,在金融、政务、运营商、电商、游戏等数十个行业中落地应用,具备金融级高可用、强一致、高性能、高可靠等特性。目前,腾讯云数据库TDSQL已助力20余家金融机构进... 查看详情

开源自建/托管与商业化自研trace,如何选择?

...复杂,为了快速定位异常组件与性能瓶颈,接入分布式链路追踪Trace已经成为IT运维领域的共识。但是,开源自建、开源托管或商业化自研Trace产品之间到底有哪些差异,我该如何选择?这是许多用户在调研Trace... 查看详情

开源自建/托管与商业化自研trace,如何选择?

...复杂,为了快速定位异常组件与性能瓶颈,接入分布式链路追踪Trace已经成为IT运维领域的共识。但是,开源自建、开源托管或商业化自研Trace产品之间到底有哪些差异,我该如何选择?这是许多用户在调研Trace... 查看详情

[视频教程]利用ssh隧道进行远程腾讯云服务器项目xdebug调试(代码片段)

我的远程服务器是腾讯云的ubuntu系统机器,本地我的电脑系统是deepin的系统,使用的IDE是vscode。现在就来使用本地的IDE来调试腾讯云中为网站项目实现逻辑是访问网站域名后,请求被转发给腾讯云本地的9001端口,通过ssh隧道,... 查看详情

手机远程连接阿里云腾讯云服务器的方法

...较方便的。下面说说如何用ssh工具来连接阿里云服务器和腾讯云服务器。打开阿里云APP首页,点击“ssh工具”,选择“从我的ECS中选择”,或者手动添加主机。选择密码登陆的方式。2、连接腾讯云服务器连接非阿里云服务器的... 查看详情