spark.sql.shuffle.partitions的最佳值应该是什么?或者使用Spark SQL时如何增加分区?

unk1102

嗨,我实际上正在使用Spark SQL hiveContext.sql(),它使用按查询分组,并且遇到了OOM问题。因此,考虑将spark.sql.shuffle.partitions默认从200增加到1000,但这无济于事。如果我错了,请更正我,此分区将共享数据洗牌负载,因此,更多的分区会保留较少的数据。请指导我是Spark的新手。我使用的是Spark 1.4.0,我有大约1TB的未压缩数据要使用hiveContext.sql()分组查询进行处理

不要

如果随机播放的内存不足,请尝试设置spark.sql.shuffle.partitions为2001。

当分区数大于2000时,Spark使用不同的数据结构进行随机记录簿记:

private[spark] object MapStatus {

  def apply(loc: BlockManagerId, uncompressedSizes: Array[Long]): MapStatus = {
    if (uncompressedSizes.length > 2000) {
      HighlyCompressedMapStatus(loc, uncompressedSizes)
    } else {
      new CompressedMapStatus(loc, uncompressedSizes)
    }
  }
...

我真的希望他们能让您独立配置。

顺便说一下,我在Cloudera幻灯片中找到了此信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章