此系列是本人浅读《Hadoop权威指南(第三版)》的一些用更通俗,好理解的形式做的总结,具体参考原版。

        MapReduce是Hadoop的核心和基础,他是一个处理数据的编程模型,虽说有了hive之后因为非常简单易上手,很多不是程序员的人也可以很好的利用Hadoop去做大数据分析处理来代替写MapReduce程序,但是本人认为对于掌握Hadoop、大数据处理生态,它还是有学习的必要性的。

理论介绍
    MapReduce分为两个阶段,即map和reduce两个阶段。每个阶段的输入和输出都是以键值对的方式。

①Map阶段      :输入键值对a 输出键值对b
shuffle阶段    :书上说是经由MapReduce框架处理后,我的理解是对所有map阶段产生的键值对b加工汇合整理,得到键值对c)
②Reduce阶段 :输入键值对c,输出键值对d(结果)

具体例子演示

※※背景:查找每一年份最高气温

※※数据(键值对a):

hadoop快速入门 pdf hadoop教程菜鸟教程_hadoop快速入门 pdf


      说明:

                  每一个键值对就是一个采集样本数据

                  key   ,可以把它理解为就是采集样本的序号吧,这个不重要

                value,就是样本那一年采集某一段时间的气候数据组成,例如湿度、温度等气候要素转化为数据拼接表示,其中加粗的是年份和温度,所以其他数据并不重要;

                 所以map阶段输入的数据,其实只有加粗的年份和温度两个数据是有用的。※※Map阶段:过滤数据,整理有用的数据

      输入:键值对a(即上述数据)

      输出:

hadoop快速入门 pdf hadoop教程菜鸟教程_hadoop_02

※※shuffle阶段:(MapReduce框架处理,将键值对整理汇合排序和分组)

      输入:键值对b(即上Map输出)

      输出:

hadoop快速入门 pdf hadoop教程菜鸟教程_hadoop_03

※※Reduce阶段:(遍历整个列表找出最大的读熟)

      输入:键值对c(即上shuffle输出)

      输出:

hadoop快速入门 pdf hadoop教程菜鸟教程_程序员_04


这就是最终结果,