`

Hadoop之MapReduce WordCount详细分析

 
阅读更多
MapReduce的设计思想

主要的思想是分而治之(divide and conquer),分治算法

将一个大的问题切分成很多小的问题,然后在集群中的各个节点上执行,这既是Map过程。在Map过程结束之后,会有一个Ruduce的过程,这个过程即将所有的Map阶段产出的结果进行汇集。

写MapReduce程序的步骤:
1.把问题转化为MapReduce模型
2.设置运行的参数
3.写map类
4.写reduce类
例子:统计单词个数

将文件拆分成splits,每个文件为一个split,并将文件按行分割形成<key,value>对,MapReduce框架自动完成,其中行偏移量(即key值)包括了回车所占的字符数



将分割好的<key,value>对交给用户定义的map方法(TokenizerMapper)进行处理,生成新的<key,value>对。



得到map方法输出的<key,value>对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果。



Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的reduce方法(IntSumReducer)进行处理,
得到新的<key,value>对,并作为WordCount的输出结果



下面我们看官方给出的例子:



1:将Block块分割成三个Split
2:每个Split对应一个mapper
3: 三个mapper输出结果进行Shuffling,每个map的输出只是简单的key-value而非key-valuelist,
   所以洗牌的工作就是将map输出转化为reducer的输入的过程。
   在reducer开始之前shuffle要做的事情分为两步copy和sort 阶段。


转自:http://www.cnblogs.com/zhanghuijunjava/archive/2013/04/27/3036549.html

  • 大小: 24 KB
  • 大小: 35.3 KB
  • 大小: 58.7 KB
  • 大小: 38.7 KB
  • 大小: 34.3 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Hadoop mapreduce实现wordcount

    MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的次数。在这个案例中,我们将深入探讨如何在 ...

    hadoop mapreduce wordcount

    &lt;groupId&gt;com.hadoop.mapreduce&lt;/groupId&gt; &lt;artifactId&gt;wordcount &lt;version&gt;0.0.1-SNAPSHOT &lt;packaging&gt;jar &lt;name&gt;wordcount &lt;url&gt;http://maven.apache.org&lt;/url&gt; &lt;project.build.sourceEncoding&gt;UTF-8 ...

    hadoop 框架下 mapreduce源码例子 wordcount

    在这个例子中,我们将深入理解Hadoop MapReduce的工作原理以及如何在Eclipse环境下实现WordCount源码。 1. **Hadoop MapReduce概述**: Hadoop MapReduce是由两个主要部分组成的:Map阶段和Reduce阶段。Map阶段将...

    Ubuntu安装Hadoop实现MapReduce里的WordCount

    ### Ubuntu安装Hadoop实现MapReduce里的WordCount #### 核心知识点概述 1. **Ubuntu环境下的基础配置**:包括VMware Tools的安装、JDK的安装与配置。 2. **Hadoop的安装与配置**:包括下载与解压、环境变量配置、...

    hadoop-mapreduce-examples-2.7.1-sources.jar

    hadoop中的demo,wordcount列子用到的JAR包 用法: # 在容器里运行WordCount程序,该程序需要2个参数...hadoop jar hadoop-mapreduce-examples-2.7.1-sources.jar org.apache.hadoop.examples.WordCount input output

    hadoop mapreduce 例子项目,运行了单机wordcount

    WordCount程序是Hadoop MapReduce的入门示例,它由两个阶段组成:Map阶段和Reduce阶段。在Map阶段,输入的文本文件被分割成多个块,然后在不同的节点上并行处理。每个节点上的Mapper将读取数据,分割出单词(通常是...

    大数据实验报告Hadoop编程实现wordcount单词统计程序附源码.doc

    大数据实验报告 Hadoop 编程实现 wordcount 单词统计程序附源码 本实验报告旨在介绍使用 Hadoop 编程实现 wordcount 单词统计程序的步骤和代码实现。实验的目的在于熟悉 Hadoop 虚拟机的安装与环境的配置,初步理解...

    Hadoop之MapReduce编程实例完整源码

    一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...

    MapReduce wordcount demo

    用java的MapReduce写了个demo,用于计算文档单词出现个数

    hadoop1.2.1修改WordCount并编译

    在编译 WordCount 程序时,我们需要使用 Hadoop 1.2.1 版本下的编译工具,例如 hadoop-1.2.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-1.2.1.jar。我们可以使用以下命令来编译 WordCount 程序: ``` ...

    使用hadoop实现WordCount实验报告.docx

    实验报告的目的是详细记录使用Hadoop在Windows环境下实现WordCount应用的过程,包括环境配置、WordCount程序的实现以及实验结果分析。本实验旨在理解Hadoop分布式计算的基本原理,并熟悉Hadoop集群的搭建与管理。 #...

    Hadoop集群-WordCount运行详解.pdf

    1.3.2旧的WordCount分析与1.3.3新的WordCount分析,从源码层面解读了旧版和新版的WordCount程序实现,展示了程序如何定义Map和Reduce函数以及它们的工作机制。 1.4WordCount处理过程描述了WordCount程序在MapReduce...

    hadoop中 MapReduce学习代码WordCount

    本篇文章将详细讲解如何通过一个简单的 WordCount 示例来入门 Hadoop MapReduce。 首先,我们需要了解 MapReduce 的基本工作流程。MapReduce 分为两个主要阶段:Map 阶段和 Reduce 阶段。Map 阶段将输入数据分割成...

    hadoop之wordcount例程代码

    总结来说,Hadoop的WordCount例程是一个很好的起点,它揭示了如何利用MapReduce进行大规模数据处理的基本步骤。通过这个例子,学习者可以理解分布式计算的精髓,包括数据拆分、并行处理、结果聚合等概念。在实际应用...

    03-Hadoop-MapReduce.docx

    MapReduce是Hadoop生态系统中的核心组件之一,主要用于处理和生成大规模数据集。它的设计目标是简化分布式计算,使得开发者能够专注于编写业务逻辑,而无需过多关注底层分布式系统的复杂性。 **1. MapReduce定义** ...

    WordCount2_hadoopwordcount_

    在Hadoop生态系统中,`WordCount`程序是...`WordCount2.java`文件包含了该程序的源代码,展示了如何利用Hadoop的MapReduce模型进行分布式计算。理解并分析这个程序的源代码,有助于深入学习Hadoop和分布式计算的基础。

    Hadoop入门脚本WordCount

    本文将详细解析这个简单的WordCount程序,帮助初学者快速入门Hadoop。 一、Hadoop简介 Hadoop是Apache基金会的一个开源项目,基于Java实现,主要设计用于处理和存储大规模数据。其核心包括两个主要组件:HDFS...

    006_hadoop中MapReduce详解_3

    总的来说,"006_hadoop中MapReduce详解_3"可能涵盖了MapReduce的高级话题,包括优化技巧、错误处理和实战案例分析。通过阅读`TestMR.java`和`WordCount.java`的源代码,我们可以深入理解MapReduce的编程模型和实现...

Global site tag (gtag.js) - Google Analytics