Hadoop技术内幕:深入解析MapReduce架构设计与实现原理大数据技术丛书
(副标题):无 ;
(作者): 董西成, 51epub.cc ;
内容简介:
2.3 MapReduce编程模型概述
2.3.1 MapReduce编程模型简介
从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:Map和Reduce。用户只需编写map()和reduce()两个函数,即可完成简单的分布式程序的设计。
map()函数以key/value对作为输入,产生另外一系列key/value对作为中间输出写入本地磁盘。MapReduce框架会自动将这些中间数据按照key值进行聚集,且key值相同(用户可设定聚集策略,默认情况下是对key值进行哈希取模)的数据被统一交给reduce()函数处理。
reduce()函数以key及对应的value列表作为输入,经合并key相同的value值后,产生另外一系列key/value对作为最终输出写入HDFS。
下面以MapReduce中的“hello world”程序—WordCount为例介绍程序设计方法。
“hello world”程序是我们学习任何一门编程语言编写的第一个程序。它简单且易于理解,能够帮助读者快速入门。同样,分布式处理框架也有自己的“hello world”程序:WordCount。它完成的功能是统计输入文件中的每个单词出现的次数。在MapReduce中,可以这样编写(伪代码)。
其中Map部分如下:
//key:字符串偏移量
//value:一行字符串内容
map(String key, String value):
//将字符串分割成单词
words=SplitIntoTokens(value);
for each word w in words:
EmitIntermediate(w,"1");
Reduce部分如下:
//key:一个单词
//values:该单词出现的次数列表
reduce(String key, Iterator values):
in.....
目录预览:
Hadoop技术内幕:深入解析MapReduce架构设计与实现原理大数据技术丛书
第一部分 基础篇
第1章 阅读源代码前的准备
1.1 准备源代码学习环境
1.2 获取Hadoop源代码
1.3 搭建Hadoop源代码阅读环境
1.4 Hadoop源代码组织结构
1.5 Hadoop初体验
1.6 编译及调试Hadoop源代码
1.7 小结
第2章 MapReduce设计理念与基本架构
2.1 Hadoop发展史
2.2 Hadoop MapReduce设计目标
2.3 MapReduce编程模型概述
2.4 Hadoop基本架构
2.5 Hadoop MapReduce作业的生命周期
2.6 小结
第二部分 MapReduce编程模型篇
第3章 MapReduce编程模型
3.1 MapReduce编程模型概述
........