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