Hadoop系列 mapreduce 原理分析

以wordcount 为例

https://blog.csdn.net/weixin_43291055/article/details/106488839

步骤一:split

Hadoop系列 mapreduce 原理分析_第1张图片

步骤二:map阶段

Hadoop系列 mapreduce 原理分析_第2张图片

步骤三:combine阶段(可选)---将同一台机器上的相同的数据进行合并,减少网络传输

combiner其实也是一种reduce操作,因此我们看见WordCount类里是用reduce进行加载的。Combiner是一个本地化的reduce操作,它是map运算的后续操作,主要是在map计算出中间文件前做一个简单的合并重复key值的操作,例如我们对文件里的单词频率做统计,map计算时候如果碰到一个hadoop的单词就会记录为1,但是这篇文章里hadoop可能会出现n多次,那么map输出文件冗余就会很多,因此在reduce计算前对相同的key做一个合并操作,那么文件会变小,这样就提高了宽带的传输效率,毕竟hadoop计算力宽带资源往往是计算的瓶颈也是最为宝贵的资源,但是combiner操作是有风险的,使用它的原则是combiner的输入不会影响到reduce计算的最终输入,例如:如果计算只是求总数,最大值,最小值可以使用combiner,但是做平均值计算使用combiner的话,最终的reduce计算结果就会出错。

平均值不能用combine的原因:不能直接使用reduce

平均值的计算:https://blog.csdn.net/yapuge/article/details/24373063

Hadoop系列 mapreduce 原理分析_第3张图片

步骤四:shuffle阶段

https://www.jianshu.com/p/c2a5468f0c5c

步骤五:reduce

Hadoop系列 mapreduce 原理分析_第4张图片

参考:

https://www.jianshu.com/p/c2a5468f0c5c

https://blog.csdn.net/shujuelin/article/details/79119214

http://dblab.xmu.edu.cn/wp-content/uploads/2016/01/Chapter7-%E5%8E%A6%E9%97%A8%E5%A4%A7%E5%AD%A6-%E6%9E%97%E5%AD%90%E9%9B%A8-%E5%A4%A7%E6%95%B0%E6%8D%AE%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86%E4%B8%8E%E5%BA%94%E7%94%A8%EF%BC%88%E7%AC%AC2%E7%89%88%E6%95%99%E6%9D%90%EF%BC%89-%E7%AC%AC7%E7%AB%A0-MapReduce%EF%BC%882017%E5%B9%B42%E6%9C%88%E7%89%88%E6%9C%AC%EF%BC%89.pdf

你可能感兴趣的:(hadoop)