开发者社区> 问答> 正文

spark.shuffle.memoryFraction参数的含义,以及优化经验?

spark.shuffle.memoryFraction参数的含义,以及优化经验?

展开
收起
茶什i 2019-10-29 14:08:45 2629 0
2 条回答
写回答
取消 提交回答
  • 1)spark.shuffle.memoryFraction是shuffle调优中 重要参数,shuffle从上一个task拉去数据过来,要在Executor进行聚合操作,聚合操作时使用Executor内存的比例由该参数决定,默认是20%
    如果聚合时数据超过了该大小,那么就会spill到磁盘,极大降低性能;2)如果Spark作业中的RDD持久化操作较少,shuffle操作较多时,建议降低持久化操作的内存占比,提高shuffle操作的内存占比比例,避免shuffle过程中数据过多时内存不够用,必须溢写到磁盘上,降低了性能。此外,如果发现作业由于频繁的gc导致运行缓慢,意味着task执行用户代码的内存不够用,那么同样建议调低这个参数的值

    2019-10-30 15:09:08
    赞同 展开评论 打赏
  • 精于基础,广于工具,熟于业务。

    该参数代表了Executor内存中,分配给shuffle read task进行聚合操作的内存比例。调优的话如果集群很少进行持久化的操作的话,建议调高比例

    2019-10-30 15:08:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载