您当前的位置: 首页 > 

宝哥大数据

暂无认证

  • 0浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

shuffle调优

宝哥大数据 发布时间:2019-03-02 09:35:21 ,浏览量:0

5.3、shuffle调优

spark在执行groupByKey、reduceByKey等操作时的,shuffle环节的调优。这个很重要。shuffle调优,其实对spark作业的性能的影响,是相当之高!!!经验:在spark作业的运行过程中,只要一牵扯到有shuffle的操作,基本上shuffle操作的性能消耗,要占到整个spark作业的50%~90%。10%用来运行map等操作,90%耗费在两个shuffle操作。groupByKey、countByKey。 参考文档: https://www.jianshu.com/p/98a1d67bc226 https://blog.csdn.net/zhanglh046/article/details/78360762

  • 5.3.1、shuffle原理
  • 5.3.2、合并map端输出文件 这里写图片描述
  • 5.3.3、调节map端内存缓冲与reduce端内存占比 这里写图片描述
  • 5.3.4、控制shuffle reduce端缓冲大小以避免OOM

map端的task是不断的输出数据的,数据量可能是很大的。

但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的应用。

每次reduece能够拉取多少数据,就由buffer来决定。因为拉取过来的数据,都是先放在buffer中的。然后才用后面的executor分配的堆内存占比(0.2),hashmap,去进行后续的聚合、函数的执行。 注意与reduce端内存占比的区别设置spark.reducer.maxSizeInFlight

  • 5.3.5、HashShuffleManager与SortShuffleManager
关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0401s