开发者社区 问答 正文

bypassMergeThreshold和bypassMergeSort是什么意思,怎么解释?

bypassMergeThreshold和bypassMergeSort是什么意思,怎么解释?

展开
收起
游客fbdr25iajcjto 2021-12-06 21:22:54 734 分享 版权
1 条回答
写回答
取消 提交回答
  • bypassMergeThreshold:

    传递到reduce端再做合并(merge)操作的阀值。如果partition的数量小于bypassMergeThreshold的值,则不需要在Executor执行聚合和排序操作,只需要将各个partition直接写到Executor的存储文件,最后在reduce端再做串联。通过配置spark.shuffle.sort.bypassMergeThreshold可以修改bypassMergeThreshold的大小,在分区数量小的时候提升计算引擎的性能。bypassMergeThreshold的默认值是200。

    bypassMergeSort:

    标记是否传递到reduce端再做合并和排序,即是否直接将各个partition直接写到Executor的存储文件。当没有定义aggregator、ordering函数,并且partition的数量小于等于bypassMergeThreshold时,bypassMergeSort为true。如果bypassMergeSort为true,map中间结果将直接输出到磁盘,此时不会占用太多内存,避免了内存撑爆问题。

    2021-12-06 21:23:38
    赞同 展开评论
问答地址: