spark.reducer.maxSizeInFlight
reduce task 的 buffer 缓冲,代表了每个 reduce task 每
次能够拉取的 map side 数据最大大小,如果内存充足,
可以考虑加大,从而减少网络传输次数,提升性能
spark.shuffle.blockTransferService
shuffle 过程中,传输数据的方式,两种选项,netty 或
nio,spark 1.2 开始,默认就是 netty,比较简单而且性
能较高,spark 1.5 开始 nio 就是过期的了,而且 spark
1.6 中会去除掉
是否对 map side 输出的文件进行压缩,默认是启用压
缩的,压缩器是由 spark.io.compression.codec 属性指
定的,默认是 snappy 压缩器,该压缩器强调的是压缩
速度,而不是压缩率
spark.shuffle.consolidateFiles
默认为 false,如果设置为 true,那么就会合并 map side
输出文件,对于 reduce task 数量特别的情况下,可以
极大减少磁盘 IO 开销,提升性能
spark.shuffle.file.buffer
map side task 的内存 buffer 大小,写数据到磁盘文件之
前,会先保存在缓冲中,如果内存充足,可以适当加
大,从而减少 map side 磁盘 IO 次数,提升性能
spark.shuffle.io.maxRetries
网络传输数据过程中,如果出现了网络 IO 异常,重试
拉取数据的次数,默认是 3 次,对于耗时的 shuffle 操
作,建议加大次数,以避免 full gc 或者网络不通常导
致的数据拉取失败,进而导致 task lost,增加 shuffle
操作的稳定性
spark.shuffle.io.retryWait
每次重试拉取数据的等待间隔,默认是 5s,建议加大
时长,理由同上,保证 shuffle 操作的稳定性
spark.shuffle.io.numConnectionsPerPeer
机器之间的可以重用的网络连接,主要用于在大型集
群中减小网络连接的建立开销,如果一个集群的机器
并不多,可以考虑增加这个值
spark.shuffle.io.preferDirectBufs
启用堆外内存,可以避免 shuffle 过程的频繁 gc,如果
堆外内存非常紧张,则可以考虑关闭这个选项
ShuffleManager , Spark 1.5 以 后 , 有 三 种 可 选 的 ,
hash、sort 和 tungsten-sort,sort-based ShuffleManager
会更高效实用内存,并且避免产生大量的 map side 磁
盘文件,从 Spark 1.2 开始就是默认的选项,tungsten-
sort 与 sort 类似,但是内存性能更高
评论0
最新资源