MapReduce中的shuffle

MapReduce中的shuffle是一种数据重新分布机制,涉及大量网络传输和磁盘I/O。它包括map端和reduce端的过程。map端数据溢写到磁盘前先分区排序,reduce端领取并归并数据。理解shuffle对于优化Hive查询至关重要,尤其是在解决数据倾斜问题时,通过预聚合减少网络传输和磁盘IO。
摘要由CSDN通过智能技术生成

 霞给的烈酒,给的温柔,最后的最后,不过是一场梦~

  shuffle的定义简单来说可以是洗牌,可以理解为一种让数据重新分布以使得某些数据被放在同一分区里的一种机制。Shuffle的过程中,存在着大量的网络消耗传输数据,会在磁盘上产生大量的中间文件。

在MapReduce中的shuffle分为map端与reducer端,以下是对shuffle的一些详述:

Map端的Shuffle

Map的输出结果首先被缓存到内存,当缓存区(环状缓冲区)达到80% (默认大小为100MB),就会启动溢写操作,当前启动溢写操作时,首先把缓存中的数据进行分区,对每个分区的数据进行排序和合并。之后再写入到磁盘中,每次溢写 都会生成新的磁盘文件,随着Job执行,被溢写出到磁盘的文件会越来越多,在Map任务全部结束之前,这些溢写文件会被归并成一个大的磁盘文件,然后通知相应的Reduce任务来领取属于自己的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值