文章简介:
本文是《MapReduce设计模式-人民邮电出版社》这本书的读书笔记,本文仅用作技术交流分享,请勿用于任何盈利活动,如需进一步学习,请阅读原书。
MapReduce是一个框架,能很好的适用于大数据(超大数据量)问题的解决方案。
数据处理的过程分为map和reduce两个阶段。
什么是MapReduce设计模式?他是使用MapReduce模型,来解决问题的通用模板,是一个解决问题通用的方法。
设计模式是一套固定的处理问题的方式方法,即使前人经验的总结,也便于新人的快速上手。
是一种良好的经验传递方式。
Hadoop是一个MapReduce系统,是一个实现了MapReduce设计模式的框架。
Hadoop是分布式处理,分布式操作系统。
自2004年以来,hadoop受到广泛关注,基于hadoop的开源系统也在蓬勃发展,如:pig、hive、Hbase、Mahout和ZooKeeper等
Hadoop中每个Map任务可以细分为四个阶段:record reader、Mapper、combiner、partitioner。Map任务的输出(中间键)会发送给reducer来处理。 Reduce任务可分为四个阶段:混排(shuffle)、排序(sort)、reducer、输出格式(output)
我们的数据本身是分布式存储在不同的物理主机上(节点),每个节点上储存这全量数据的一部分。
MAP阶段
1、 Recore reader阶段,将数据文件解析成记录
2、 Map阶段对这些记录进行解析
3、 Combiner:对数据进行汇总整理
4、 Partitioner:将汇总完成的数据分配给对应的reducer
Reducer
1、 混排:对来源于多个map的数据进行混合排序
2、 Reducer:对有序的数据进行汇总整理
3、 将结束输出到hdfs上,写入磁盘。



