shuffle的心得

http://blog.youkuaiyun.com/pursuitbeauty/article/details/38333499 参考这篇

目标:

Shuffle的大致范围就成-怎样把map task的输出结果有效地传送到reduce端。也可以这样理解, Shuffle描述着数据从maptask输出到reduce task输入的这段过程。 

·        在跨节点拉取数据时,尽可能地减少对带宽的不必要消耗。

·        减少磁盘IO对task执行的影响。

流程:




在MAP端:

   就是MAP输出---》先读到buffer-->>buffer会有一个阀值,一般是百分之八十--->>高过就搬出到硬盘,其他的20继续跑--》》搬出到的80进行排序

最终会生成好多的小文件在硬盘,然后对于这些小文件进行Merge生成一个大的文件,这个文件会保存在硬盘上。
如果这里边有combine,则使用该combine进行设置

在REDUCE:

使用Hashkey,以及reduce个数取模,将Map的输出对应到相应的reduce端上。

copy:
reduce不断启动copy线程,将tasktracker上硬盘的文件进行拉取。
Merge:
然后还会将copy后的文件保存在缓冲区,机制与map一样的。不断Merge,最终是为了生成一个最终的reduce输出文件,这个文件有可能存在内存或者磁盘。
reduce:
然后实行reduce结果,将最终的结果保存在HDFS上面。


感觉MAP与REDUCE上的都一样,不同在于
Map是自己生成好多小文件然后Merge。reduce先merge然后再执行,都会写到相同机制的缓存当中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值