SortShuffleManager的bypass机制触发条件是什么?

news/2024/11/16 2:37:16/

SortShuffleManager的运行机制主要分成两种,一种是普通运行机制,另一种是bypass运行机制。当shuffle write。

task的数量小于等于spark.shuffle.sort.bypassMergeThreshold参数的值时(默认为200),就会启用bypass机制。

该模式下,数据会先写入一个内存数据结构中(默认5M),此时根据不同的shuffle算子,可能选用不同的数据结构。如果是reduceByKey这种聚合类的shuffle算子,那么会选用Map数据结构,一边通过Map进行聚合,一边写入内存;如果是join这种普通的shuffle算子,那么会选用Array数据结构,直接写入内存。

(2)接着,每写一条数据进入内存数据结构之后,就会判断一下,是否达到了某个临界阈值。如果达到临界阈值的话,那么就会尝试将内存数据结构中的数据溢写到磁盘,然后清空内存数据结构。

(3)排序

在溢写到磁盘文件之前,会先根据key对内存数据结构中已有的数据进行排序。

(4)溢写

排序过后,会分批将数据写入磁盘文件。默认的batch数量是10000条,也就是说,排序好的数据,会以每批1万条数据的形式分批写入磁盘文件。

(5)merge

一个task将所有数据写入内存数据结构的过程中,会发生多次磁盘溢写操作,也就会产生多个临时文件。最后会将之前所有的临时磁盘文件都进行合并成1个磁盘文件,这就是merge过程。由于一个task就只对应一个磁盘文件,也就意味着该task为Reduce端的stage的task准备的数据都在这一个文件中,因此还会单独写一份索引文件,其中标识了下游各个task的数据在文件中的start offset与end offset。

触发条件

bypass运行机制的触发条件如下: 1)shuffle map task数量小于spark.shuffle.sort.bypassMergeThreshold=200参数的值。 2)不是map combine聚合的shuffle算子(比如reduceByKey有map combie)。

bypass运行机制触发条件

bypass运行机制的触发条件如下:

1)shuffle map task数量小spark.shuffle.sort.bypassMergeThreshold=200参数的值。

2)不是map combine聚合的shuffle算子(比如reduceByKey有map combie)。

• 此时task会为每个reduce端的task都创建一个临时磁盘文件,并将数据按key进行hash,然后根据key的hash值, 将key写入对应的磁盘文件之中。当然,写入磁盘文件时也是先写入内存缓冲,缓冲写满之后再溢写到磁盘文件的 。最后,同样会将所有临时磁盘文件都合并成一个磁盘文件,并创建一个单独的索引文件。

• 该过程的磁盘写机制其实跟未经优化的HashShuffleManager是一模一样的,因为都要创建数量惊人的磁盘文件, 只是在最后会做一个磁盘文件的合并而已。因此少量的最终磁盘文件,也让该机制相对未经优化的 HashShuffleManager来说,shuffle read的性能会更好。

而该机制与普通SortShuffleManager运行机制的不同在于:

第一,磁盘写机制不同;

第二,不会进行排序。也就是说,启用该机制的最大好处在于,shuffle write过程中,不需要进行数据的排序操作, 也就节省掉了这部分的性能开销。

总结:

SortShuffle也分为普通机制和bypass机制

普通机制在内存数据结构(默认为5M)完成排序,会产生2M个磁盘小文件。

而当shuffle map task数量小于spark.shuffle.sort.bypassMergeThreshold参数的值。或者算子不是聚合类的shuffle算子(比如reduceByKey)的时候会触发SortShuffle的bypass机制,SortShuffle的bypass机制不会进行排序,极大的提高了其性能。


http://www.ppmy.cn/news/590950.html

相关文章

计算机显卡故障,电脑显卡故障如何解决_电脑显卡有问题怎么处理

显卡是电脑中重要的部件,如果电脑显卡出现故障的话,就会出现很多问题,比如脑显示器没反应,开机完全黑屏,或者主机有嘀嘀嘀的叫声等现象,那么如果遇到电脑显卡故障如何解决呢?现在就教大家电脑显…

计算机显卡更新,电脑显卡升级,教您显卡怎么升级

显卡的升级能给电脑带来好处,但是它升级的步骤却也不是那么简单的。说到这儿,小伙伴就应该知道小编接下来要点名主题了,没错,小编接下来就来给你们说说怎么升级显卡。 对于玩游戏的小伙伴来说,那就重要了。因为好的显卡…

单片机调试

单片机调试 1、调试方式2、显示屏调试2.1 简介 2.2、OLED显示屏的驱动函数模块3、Keil调试模式 1、调试方式 1、串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息‘’ 2、显示屏调试:直接将显示屏连接…

stable diffusion webui + kohya_ss

关于sd,我自己也是新手,就简单记录一下 首先是项目地址,https://github.com/AUTOMATIC1111/stable-diffusion-webui 然后关于这个webui的使用教程,找到一个博客,但是需要科技才能上。 欢迎 | Stable Diffusion WebUI…

PCSX2模拟《铁拳5》相关设置

默认情况下使用pcsx2 1.6.0模拟铁拳5,主要会出现两个问题 问题解决方案屏幕抖动菜单 Config > Video (GS) > Plugin Settings,开启"Enable HW Hacks",点击Configure Hacks,开启"Wild Arms Offset"竖行…

迷雾世界无限号服务器,迷雾世界部分服务器5月3日数据互通公告

迷雾世界为了优化游戏体验,更好地提升组队、交互的互动体验,开发组在 4月28日 对所有玩家进行了关于数据互通的调查投票。结果显示,绝大部分的玩家都投票同意。 因此,我们将在本周三(5月3日)08:00分别对【霜啸丛林、铁…

铁拳6常用符解释图文|新手必看|

铁拳6常用符解释图文|新手必看| 拳脚按键 左拳——1  右拳——2  左脚——3  右脚——4 摇杆方向 上———u (up)   下———d (down)   前———f (forward)  后———b (back)  复位——n (Neutral) 斜上——u/f   后上——u/b   斜下——d/f…

街霸4图形技术讲解

动作全部手工添加。巨大化攻击部位的秘密和正合适的攻击冲击感! [街霸4]系列倡导了[把2D格斗游戏趣味美化后再现],[把插图(illustration)风格用3D方式运动起来]的概念。 在前篇中虽然解说了Shading和Lighting等[涂色]的部分&#…