`

MapReduce工作原理

阅读更多
Map-Reduce框架的运作完全基于<key,value>对,即数据的输入是一批<key,value>对,生成的结果也是一批<key,value>对,只是有时候它们的类型不一样而已。Key和value的类由于需要支持被序列化(serialize)操作,所以它们必须要实现Writable接口,而且key的类还必须实现WritableComparable接口,使得可以让框架对数据集的执行排序操作。

一个Map-Reduce任务的执行过程以及数据输入输出的类型如下所示:

(input)<k1,v1> -> map -> <k2,v2> -> combine -> <k2,v2> -> reduce -> <k3,v3>(output)

下面通过一个的例子并结合源代码来详细说明这个过程
3.1       WordCount示例

这也是Hadoop自带的一个例子,目标是统计文本文件中单词的个数。

假设有如下的两个文本文件来运行WorkCount程序:

Hello World Bye World


Hello Hadoop GoodBye Hadoop


3.2  map数据输入

Hadoop针对文本文件缺省使用LineRecordReader类来实现读取,一行一个key/value对,key取偏移量,value为行内容。

如下是map1的输入数据:
Key1 Value1
0 Hello World Bye World

如下是map2的输入数据:
Key1 Value1
0 Hello Hadoop GoodBye Hadoop

3.3  map输出/combine输入

如下是map1的输出结果
Key2 Value2
Hello 1
World 1
Bye 1
World 1

如下是map2的输出结果
Key2 Value2
Hello 1
Hadoop 1
GoodBye 1
Hadoop 1
3.4    combine输出

Combiner类实现将相同key的值合并起来,它也是一个Reducer的实现。

如下是combine1的输出
Key2 Value2
Hello 1
World 2
Bye 1

如下是combine2的输出
Key2 Value2
Hello 1
Hadoop 2
GoodBye 1
3.5    reduce输出

Reducer类实现将相同key的值合并起来。

如下是reduce的输出
Key2 Value2
Hello 2
World 2
Bye 1
Hadoop 2
GoodBye 1

即实现了WordCount的处理
分享到:
评论

相关推荐

    Hadoop介绍,HDFS和MapReduce工作原理

    Hadoop介绍,HDFS和MapReduce工作原理

    Hadoop技术MapReduce工作原理共9页.pdf

    以下是MapReduce的工作原理、核心概念以及其在大数据处理中的应用。 **一、MapReduce工作流程** MapReduce的工作流程主要分为三个阶段:Map阶段、Shuffle阶段(也称为排序和分区)和Reduce阶段。 1. **Map阶段**...

    17_尚硅谷大数据之MapReduce框架原理1

    **3.1 MapReduce工作流程** 1. **提交阶段**:客户端将应用程序(包括map和reduce代码以及输入数据)打包成JAR文件,并提交给JobTracker(在YARN中是ResourceManager)。 2. **作业初始化**:JobTracker解析JobConf...

    Hadoop技术-MapReduce工作原理.pptx

    MapReduce的工作原理包括MapTask和ReduceTask两个主要阶段。MapTask负责数据的输入、处理和本地溢写,而ReduceTask则处理数据的传输、合并、排序和reduce操作。理解这两个阶段的内部机制对于优化Hadoop作业性能至关...

    Mapreduce原理

    ### MapReduce原理详解 #### 一、MapReduce与Hadoop概述 MapReduce是Apache Hadoop项目的核心组件之一,主要用于处理大规模数据集的分布式计算。它不仅是一种编程模型,还是一套支持这种模型的软件框架。MapReduce...

    MapReduce工作知识原理.pdf

    MapReduce工作原理详解 Hadoop是一个开源的分布式计算框架,起源于Apache项目,专注于大规模数据的分布式存储和处理。它的核心特性包括可扩展性、经济性、高效性和可靠性,使得处理PB级别的数据变得可能,同时利用...

    MapReduce原理及实现介绍

    分布式处理系统,适合集群式处理。提高运行效率以及容错率

    JavaScript mapreduce工作原理简析

    JavaScript MapReduce工作原理简析 MapReduce是一种编程模型,由谷歌在2004年的OSDI会议上提出,它主要用于大规模数据集的并行处理。该模型借鉴了函数式编程的概念,将复杂的数据处理任务分解为两个主要阶段:Map...

    Map-Reduce原理体系架构和工作机制,eclipse与Hadoop集群连接

    ### Map-Reduce原理体系架构和工作机制 #### 一、Map-Reduce原理概述 Map-Reduce是一种编程模型,用于处理大规模数据集(通常是TB级或更大),该模型可以在大量计算机(称为集群)上进行并行处理。Map-Reduce的...

    Hadoop MapReduce教程.pdf

    #### MapReduce工作原理 MapReduce的工作流程分为两个阶段:Map阶段和Reduce阶段。 - **Map阶段**:输入的数据被切分成多个小块,每个Map任务读取其中一小块数据,进行处理,并将结果输出到一组中间键值对中。 - *...

    mapreduce源码

    这个压缩包文件包含了Hadoop MapReduce项目的源代码,提供了深入理解MapReduce工作原理、内部机制和优化策略的宝贵资源。以下是对MapReduce源码的一些关键知识点的详细阐述: 1. **MapReduce架构**:MapReduce将...

    Hadoop应用系列2--MapReduce原理浅析(上)

    本文将深入浅出地解析MapReduce的工作原理,帮助读者理解这一强大的大数据处理模型。 MapReduce是由Google在2004年提出的一种并行计算模型,其设计灵感来源于函数式编程中的映射(map)和归并(reduce)操作。...

    mapreduce 实现朴素贝叶斯算法-源码

    **MapReduce工作原理:** MapReduce将大数据处理任务分解为两个主要阶段:Map阶段和Reduce阶段。Map阶段将输入数据分割成多个小块,然后对每个块进行独立处理,生成中间键值对。Reduce阶段则负责聚合这些中间结果,...

    mapreduce原理

    MapReduce 原理 MapReduce 的定义和架构 MapReduce 是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的式并行处理上 T 级别的数据集。 MapReduce...

Global site tag (gtag.js) - Google Analytics