标签:提高 proc 根据 默认 tun 问题 均衡 多个 -o
Spark shuffle是什么现在的spark版本默认使用的是sortshuffle;
shuffle在哪里产生
shuffle在spark的算子中产生,也就是运行task的时候才会产生shuffle.
sortShuffleManagerspark
shuffle的默认计算引擎叫sortshuffleManager,它负责shuffle过程的执行、计算和组件的处理,sortshuffleManager会将task进行shuffle操作时产生的临时磁盘文件合并成一个磁盘文件,在下一个stage的shuffle read task拉取自己的数据时,只要根据索引读取每个磁盘文件中的部分数据即可。
sortshuffle的内部机制
在溢写到磁盘之前,在内存中会按照key来排序,排序过后会进入到一个buffer缓冲区,默认为32K,缓冲区的batch默认为1万条key,也就是缓冲区以每次一万条的量写入到磁盘文件中,该缓冲区减少IO,提高性能. 缓冲区和写入磁盘使用的技术是java中的BufferedOutputStream.
shuffle当中可能会遇到的问题
shuffle调优
shuffle调优分为两种,一种是shuffle参数根据实际情况调优,一种是代码开发调优,代码开发调优我在spark性能调优里面去写!
标签:提高 proc 根据 默认 tun 问题 均衡 多个 -o
原文地址:http://blog.51cto.com/13981400/2331388