Hadoop之Map/Reduce概述

摘要

​MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里

        MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组.

请看下面示例:

输入内容有两行:

Hello World Bye World

Hello Hadoop Goodbye Hadoop


map的输入为每个数据行 即:                      

Hello World Bye World  

Hello Hadoop Goodbye Hadoop

整个map的对上面二行的存储格式:

 < Hello,1>,< World, 1> ,< Bye, 1> ,< World, 1>,< Hello, 1> , < Hadoop, 1> , < Goodbye, 1>,<Hadoop,1>

对于Reduce的输入为下面格式的数据:

<Bye,1>,<Goodbye,1>  ,<Hadoop,1> ,<Hadoop,1>  ,<Hello,1>  ,<Hello,1> ,<World,1>,<word,1>

Reduce的存储方式则如下:

< Bye, 1>  < Goodbye, 1> < Hadoop, 2>< Hello, 2> < World, 2> 

和map存储格式相比较,reduce的方式是不是好很多,节约了大量空间。

Hadoop Map/Reduce的过程

blob.png


IT家园
IT家园

网友最新评论 (0)