Hdfs---Shuffle 执行过程

博客详细介绍了MapReduce的shuffle执行过程,包括mapShuffle和reduceShuffle两个核心环节。在map阶段,数据经过分区、排序、合并(可选combiner操作)和溢写后形成分区且有序的文件;reduce阶段,map任务通知reduce拉取数据,数据在内存中进行多轮归并,最终输出到reduce进行结果输出。
摘要由CSDN通过智能技术生成

shuffle执行过程分为两个核心环节

mapShuffle

reduceShuffle

job提交数据任务,根据客户提交的切片决定maptask的次数,map读取job提交的数据,输出格式为key/value的形式,对键值对进行一个默认的分区,每一个map任务分配一个缓存,缓存默认大小是100m当缓存到达80%时会启动溢写操作,在写入我文件之前对键值对进行分区排序合并,,默认分区是hash函数对key进行哈希在对reduce的数量取模,也可以按照需求自定义分区,默认会对key的一个字典排序,排序结束后有一个可选的合并(combine)的操作,一般在累加最大的值得场景上使用。溢出的文件时分区且区内有序的,最后对所以溢写文件进行一个归并操作。如果磁盘中生生产溢写文件的数量超过min.num.spills.for.combine的值时(默认是3,用户可以修改)就可以再次运行combiner对数据进行合并,从而减小写入磁盘的数据量。map端shuffle过程结束,通知相关的Reduce任务来拉取数据,并把数据放到缓存中,缓存内容达到80%的时候同样执行溢写操作,生产溢写文件,把这些溢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值