Hadoop权威指南学习笔记二
MapReduce简单介绍
声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步。
转载请注明:http://blog.csdn.net/my_acm
上一篇介绍了什么是Hadoop。Hadoop的作用等。本篇相同基于Hadoop权威指南,结合迪伦的Hadoop的视频教程对MapReduce做一个介绍。
1、
MapReduce是Hadoop的核心之中的一个。MapReduce分为两个部分,Mapper和Ruducer模块。简单来说就是前者完毕键值得映射,后者完毕整合过程。同是这两个模块也是编程和开发者能够对数据处理设计算法编程的地方。那么对于人员来说要用什么方法或者说是什么语言来写这些Map和Reduce函数呢?
(1) Hadoop是java语言开发的,那么自然就支持java接口的编程方式了,所以java的效率在Hadoop上执行的效率要相对照较高。以下也会重点结合迪伦的教程展示一下java怎样编写完毕mapreduce的。
(2) Hadoop管道(pipes)支持c/c++。
(3) 同是Hadoop也提供了Hadoop流(streaming)支持其它语言如Python。Ruby等。
2、
MapReducejob是client执行的单位,通过将job分成若干个小的task(task当中包含map和reduce)来完毕。Hadoop通过把输入分成若干个等长的分片发送到MapReduce中处理。Hadoop为每一个分片创建一个map任务来执行map函数。
以下是几种MapReduce执行图。
3、
WordCount(计算不同单词的个数)是MapReduce里面的一个问题。
以下是Word Count的MapReduce的详细过程图及事实上现代码