腾讯自研分布式远程Shuffle服务Firestorm正式开源

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,同时也欢迎各位优秀的开发者加入腾讯大数据研发团队。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink 在有赞的实践和应用

简介: 本文介绍了Flink 在有赞的实践和应用,内容包括:Flink 的容器化改造和实践、Flink SQL 的实践和应用、未来规划。 作者:沈磊 一、Flink 的容器化改造和实践 1. 有赞的集群演进历史 2014 年 7 月,第一个 Storm…

用imspost制作catia后处理_这些有趣又精致的模型,都是用3D打印机打印出来的

3D打印已经出现在了生活的方方面面,有相当多别具一格又十分有趣的模型会让你惊艳。今天,小编搜集了一些有趣的3D打印模型,让我们一饱眼福。海边棕榈树来源:Curufin via Cults这个凉爽的棕榈树模型是由几个3D打印模型组合起来实现的…

java 黑窗运行_javaday1 如何使用黑窗口打出helloworld并且要学会使用和环境配置/eclipse...

java 第一天要学会如何使用黑窗口打出helloworld并且要学会使用和环境配置/eclipse其实我是一直都想早点儿写点儿学习笔记的,但是太懒了一直拖到了今天,好吧我已经学习了java一个月了,说一下自己的学习经历,当做一遍复习和巩固了&…

开课吧的python的证书_Python在生活中的几个实用场景,简直太厉害了

如今Python已经成为不少职场人心中的必备技能,他们掌握Python的一些使用方法后,在工作中不仅提高了效率,还获得了老板的嘉奖,可以说是两全其美。但有的人觉得学习Python只能为工作带来一些便捷,生活中Python也可以帮忙…

cdr 表格自动填充文字_做平面广告设计,AI和CDR如何选择?

关于CDR和AI两个软件,很多人都不知道它们有什么区别。今天我就给大家好好整理了一下。不知道两者区别,不知道该选用哪个软件的都来看看下面的AI和CAD教程吧。首先CorelDRAW是一款由世界顶尖软件公司之一的加拿大的Corel公司开发的图形图像软件。其非凡的…

麒麟信安:根植于openEuler,走操作系统自主创新之路

随着信息安全问题日益突出,行业内外也越来越深刻地认识到,核心技术受制于人是我们最大的隐患。而2020年12月8日,CentOS社区宣布CentOS8将于2021年底停止维护,CentOS7将于2024年6月30日停止维护,这一消息的发布&#xf…

Hologres如何支持超高基数UV计算(基于roaringbitmap实现)

简介: 本文将会介绍Hologres基于roaringbitmap实现超高基数的UV计算 RoaringBitmap是一种压缩位图索引,RoaringBitmap自身的数据压缩和去重特性十分适合对于大数据下uv计算。其主要原理如下: 对于32bit数, RoaringBitmap会构造2^16个桶&…

java 两个sql文_Java和SQL取两个字符间的值

JavaString str "abcdefg";String result str.substring(str.indexOf(">")1, str.lastIndexOf("StringUtils.substringBefore(“abcdec”, “c”); 结果是:ab 这里是以第一个”c”为标准。StringUtils.substringBeforeLast(“abcdec”…

阿里云贾扬清:大数据+AI工程化,让数据从「成本」变为「资产」

简介: 近年来,数字经济发展迅速,企业转型背后频频涌现「数字力量」的身影。云计算、大数据、人工智能的快速融合形成了数字经济的新基建,也为数字经济发展带来了新的机遇。 5 月 20 日,阿里巴巴副总裁、阿里云计算平台…

python如何改变数据类型_如何改变numpy数组的数据类型和形状?

数据类型的混合使得这种转换比通常更复杂。最后的答案是,将字段复制到目标数组具有速度和通用性的结合。在让我们构造一个示例:In [850]: dtOut[850]: dtype([(cycle, In [851]: xnp.zeros((3,),dt)In [852]: x[cycle][0,10,23]In [853]: x[dxn][3,2,2]I…

easyexcel 日期类型 convert_数据库的几种日期时间类型,你真的会用吗?

日期和时间是每个系统,每个数据库设计必不可少的部分。也是容易被大家忽视的部分。很多开发者可能根本不了解以不同类型存储日期和时间意味着什么。有朋友可能会说,数据库定义一个datetime或timestamp类型的字段,然后在Java代码中获取当前时间…

从重复到重用

简介: 开发技术的发展,从第一次提出“函数/子程序”,实现代码级重用;到面向对象的“类”,重用数据结构与算法;再到“动态链接库”、“控件”等重用模块;到如今流行的云计算、微服务可重用整个系…

JAVA中randomfile_java中的RandomAccessFile的用法

Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。RandomAccessFile的对象包含一个记录指针,用于标识当前流的读写位置,这个位置可以向…

官宣|Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!

简介: Flink 1.13.0 版本让流处理应用的使用像普通应用一样简单和自然,并且让用户可以更好地理解流作业的性能。 ​翻译 | 高赟 Review | 朱翥、马国维 Flink 1.13 发布了!Flink 1.13 包括了超过 200 名贡献者所提交的 1000 多项修复和优化…

lightning接口_Lightning太赚钱?iPhone永远不会用Type-C

欧盟日前通过了法案,要求在欧洲销售的各手机制造商要统一充电接口,全部采用USB Type-C接口,但这可能让一直使用Lightning(闪电)充电接口的Apple受到很大影响。虽说目前苹果的Mac电脑、iPad平板电脑以及智能音箱等部分产品都开始使用USB Type-…

这个冬天,头秃了,口袋也空了......

秋天里的第一杯奶茶刚喝完,冬天里的第一条秋裤就要安排上!不让加班的程序员,从此的生活便不只有脑袋秃秃,还有口袋空空!从外包出来,没想到新的面试让我手忙脚乱外包虐我千百遍,只能待她如初恋&a…

云数据仓库的未来趋势:计算存储分离

简介: 随着云时代的到来,数据库也开始拥抱云数据库时代,各类数据库系统在各内外云平台百花齐放,有开源的MySQL、PostgreSQL、MongoDB,传统数据库厂商的SQLServer、Oracle,云厂商自研的Aurora、Redshift、Po…

Java内存配太大导致fullgc_记一次因为短命大对象导致fullGC的问题

写在前面java内存申请和释放均是由jvm在控制。而释放往往会出现各种各样的问题,经常一个引用没处理好就引起内存泄漏,最后引发OOM。如果发生在重要业务系统还可能出现严重的生产事故。 因此内存使用一定要谨慎,特别是引用要及时断链。虽然jvm…

猜数字游戏python123_【趣味数学】可以说谎的猜数字游戏

又是一年找工作的高峰期,各种各样千奇百怪的智力题也在考验着学子们的智商,其中有些题目更是让人脑细胞大量死亡。。。近来有同学问一道,带有说谎的猜数字游戏,问“元芳,这事你怎么看?”,我这想…

异步编程到底在说啥?

作者 | 码农的荒岛求生来源 | 码农的荒岛求生之前很多同学在微信上问能不能讲讲异步编程是怎么一回事儿,今天就和大家简单聊一聊这个话题。我们以函数调用为例,假设有这样的代码:void B() {lines read(filename);sum(lines); }void A() {...…