MapReduce初探

    云计算的关键技术主要包括:虚拟化、海量数据处理、大规模分布式存储、消息通讯、快速部署、资源调度、多租户技术、许可证管理与计费。。。做为一个到目前为止尚未一个清晰的统一的概念的应用模式,云计算无疑是有着广阔的前景。编程

    本文对云计算中所用到的MapReduce作一个小小的初探,简要介绍一下其思路。架构

What?什么是MapReduce。分布式

MapReduce是一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集(一般大于1TB)的并行运算。ide

MapReduce实现了Map和Reduce两个功能函数

–Map把一个函数应用于集合中的全部成员,而后返回一个基于这个处理的结果集云计算

–Reduce对结果集进行分类和概括3d

–Map()和 Reduce() 两个函数可能会并行运行,即便不是在同一的系统的同一时刻blog

How?案例:单词记数问题(Word Count)排序

问题提出:给定一个巨大的文本(如1TB),如何计算单词出现的数目?ci

Map1

下面使用MapReduce求解该问题,思路以下:

首先定义Map和Reduce函数

Map(K, V)

{

       For each word w in V

             Collect(w, 1);

}

Reduce(K, V[])

{

      int count = 0;

      For each v in V

            count += v;

      Collect(K, count);

}

 

Step 1: 自动对文本进行分割

Map2

 

Step 2:在分割以后的每一对<key,value>进行用户定义的Map进行处理,再生成新的<key,value>对

Map3

 

Step 3:对输出的结果集归拢、排序(系统自动完成)

Map4

 

Step 4:经过Reduce操做生成最后结果

Map5

经过简单的图示,咱们能够对MapReduce有一个初步的认识。固然,仍是比较模糊。之后的文章,会进一步介绍。

相关文章
相关标签/搜索