Shuffle过程介绍可以查看该博客:http://langyu.iteye.com/blog/992916
优化方向:
-
压缩:对数据进行压缩,减少写读数据量;
-
减少不必要的排序:并不是所有类型的Reduce需要的数据都是需要排序的,排序这个nb的过程如果不需要最好还是不要的好;
-
内存化:Shuffle的数据不放在磁盘而是尽量放在内存中,除非逼不得已往磁盘上放;当然了如果有性能和内存相当的第三方存储系统,那放在第三方存储系统上也是很好的;这个是个大招;
-
网络框架:netty的性能据说要占优了;
-
本节点上的数据不走网络框架:对于本节点上的Map输出,Reduce直接去读吧,不需要绕道网络框架。