之前已经知道HashShuffle会在ShuffleMapTask Stage进行如下操作
故对此进行实验
由于默认使用的shuffle方式是sort,故我们对shuffle的方式进行指定
注:HashShuffle在2.X版本被删除,这里使用的是spark1.6.0版本
先指定spark.local.dir目录
再指定spark.shuffle.manager=为hashshuffle
[hadoop@hadoop001 conf]$ spark-shell --master local[4] --conf spark.shuffle.manager=hash
当进行上面的操作时,去事先指定的目录中查看
不出所料,中间文件为12个,M_nums * R_nums
也可以采用spark.shuffle.consolidateFiles这个参数来对文件数量进行优化,减少在磁盘上写文件的数目