SortShuffleManager

网友投稿 682 2022-11-21

SortShuffleManager

SortShuffleManager

1.普通机制

执行流程1.map task 的计算结果会写入到一个内存数据结构里面,内存 数据结构默认是 5M2.在 shuffle 的时候会有一个定时器,不定期的去估算这个内存 结构的大小,当内存结构中的数据超过 5M 时,比如现在内 存结构中的数据为 5.01M,那么他会申请 5.01*2-5=5.02M 内存给内存数据结构。3.如果申请成功不会进行溢写,如果申请不成功,这时候会发 生溢写磁盘。4.在溢写之前内存结构中的数据会进行排序分区5.然后开始溢写磁盘,写磁盘是以 batch 的形式去写,一个 batch 是 1 万条数据,6.map task 执行完成后,会将这些磁盘小文件合并成一个大的 磁盘文件,同时生成一个索引文件。7.reduce task 去 map 端拉取数据的时候,首先解析索引文件, 根据索引文件再去拉取对应的数据。总结产生磁盘小文件的个数: 2*M(map task 的个数)

2.bypass 机制

总结1.bypass 运行机制的触发条件如下:(a).算子不能有 map 端的预聚合操作。(b).shuffle reduce task 的数量小于 spark.shuffle.sort.bypassMergeThreshold 的参数值。这 个值默认是 200。2.产生的磁盘小文件为:2*M(map task 的个数)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot上传临时文件被删除引起报错的解决
下一篇:HashShuffleManager
相关文章

 发表评论

暂时没有评论,来抢沙发吧~