离线数据分析平台实战——050MapReduce结构以及编程模型介绍(做过MR程序略过)
MapReduce结构介绍
MapReduce(YARN)是Hadoop提供的一种处理海量数据的并行编程模型和计算框架,用于对大规模的数据进行并行计算。
主要由resourcemanager和nodemanager两类节点构成。
其中resourcemanager主要负责集群资源管理,
nodemanager负责节点的资源管理。
除此之外,当运行mapreduce任务的时候,会产生ApplicationMaster和Container,
其中ApplicationMaster负责向resourcemanager节点进行资源的申请并控制任务的执行,
Container是最基本的资源单位。
MapReduce的map和reduce均是其之上进行运行的。
YARN结构示意图
MapReduce编程思想
MapReduce采用"分而治之"的思想,
将对大规模的数据集的操作分配给各子节点进行操作,
然后通过整合各子节点的中间结果,得到最终结果。
简单来说就是“任务的分解和结果的汇总”。
Hadoop将这个工作高度抽象成为两个函数,分别为map和reduce。
map负责将任务分解为多个任务,
reduce负责将多个map任务的中间结果合并为最终结果。
至于在此过程中的其他步骤,均由hadoop的MapReduce框架自行负责处理,包括工作调度、任务分配、各节点通信等。
MapReduce编程模型
MapReduce新旧API说明
从整体角度来讲的话,MapReduce有两套不同的开发API,一套是位于mapred包下面的api,我们成为旧API;一套是位于mapreduce包下的api,我们成为新API;两套api的区别在于旧api使用接口来进行管理,而新api采用抽象类来进行管理。
MapReduce案例1--wordcount程序实现
完成功能:统计一系列文本文件中的每个单词出现的次数
Hadoop示例程序WordCount详解及实例
http://blog.csdn.net/xw13106209/article/details/6116323
MapReduce案例2--倒排索引
完成功能:统计一系列文本文件中的每个单词构成的倒排索引。
分析:
- 倒排索引主要是用来存储某个单词在一个文档中或者一组文档中出现的位置映射关系,即提供一个根据内容查找文档的方式。
- 加权倒排索引,在确定指定单词到文档位置的映射关系的时候,加入权重考虑信息。
http://blog.csdn.net/hguisu/article/details/7962350
倒排索引为什么叫倒排索引?