spark的HashShuffleManager、SortShuffleManager、钨丝ShuffleManager

1、shuffle分类

spark的shuffle机制可以分为3类,分别是HashShuffleManager、SortShuffleManager、tungsten-sortShuffleManager(钨丝ShuffleManager),下面对着几种shuffle机制进行详细的介绍

2、HashShuffleManager

普通的HashShuffleManager
HashShuffleManager 是早期的Spark版(1.2之前)本中的默认的shuffle的机制,但是这种shuffle机制有很明显的缺陷,下面是hashShuffleManager的原理图
下面图中是有两个executor, 每个executor中有一个cpu core,所以每个executor中的并行度是1,在进行shuffle的过程,,map端shuffle的数据回先写到bucket缓存中(32kb),当达到一定的大小时,会溢写到磁盘上,每个Map task会为每个reduce task产生一份数据,所以map端一共产生的小文件是就是 map task 数* reduce task数

假设一共有100个map task 和 100 个reduce task, 那么产生的小文件个数时10000个小文件,这么多小文件带来很多问题:

(1)写磁盘的小文件多,IO多
(2)reduce 端读取数据时建立的 连接多
(3)占用内存多,频繁gc,gc时会对外停止工作, 还可能导致oom内存

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值