hadoop中mapreduce原理过程

在企业实习的过程中,有学习到hadoop,师傅也需要我们讲解mapreduce过程原理。我就把我的理解分享以下。

MR(分布式计算模型)分为2个部分Map,Reduce。

 

MR原理图

 

1. Map 过程。

1.1 从HDFS读取数据,默认一行产生一对<k,v>.

1.2 每次接受到一对<k,v>,调用一次map()方法进行计算,产生新的一对<k,v>,调用prattioner(),计算key的hash值然后根据reduce  task数量取模计算,最后将<k,v> 及parttion值放置缓冲区中。.

1.3 在对缓冲区数据进行排序后,如果client设置了combine,进行combine(相当如mapper端的reduce)

1.4 当缓冲区数据达到80%时,启动spilt(溢写)。将数据刷入至硬盘当中。产生一个溢写文件。在溢写时,会对内容进行排序(对序列化的字节做的排序,根据不同的<k,v>发送到不同端的reduce,减少parttion索引记录)

(之所以设置80%默认,方便将数据刷入硬盘的时候,任然可以接受map产生的结果)

(分区->排序->combine)

1.5 当数据量很大的时候,会产生多个溢写文件,在map task完成时,会进行merge,合并为一个文件。

2.reduce过程

2.1 merge阶段,类似map阶段的merge,将来自不同map端的数据进行整合。copy过来的数值首先放到内存缓冲区中。merge主要方式为从内存到磁盘,与map的溢写类似,如果在此过程中设置了combiner,也是会启用的。产生众多的溢写文件。直到map端没有数据结束。然后进行磁盘到磁盘的merge方式生成最终的文件。

2.2最终文件成为combine的输入文件,进行reduce运算。产生结果

2.3.将产生的结果输出到HDFS上。

推荐

https://www.cnblogs.com/sharpxiajun/p/3151395.html#commentform

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值