`
free9277
  • 浏览: 107827 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用MapReduce实现单词计数

阅读更多

1  描述

       假定有一组文件,以空格为分隔符存放着数据。计算一组文件中字符所出现的次数。

       输入:

Hello World
Hello my love
Hello World , i love you

     输出:

Hello 3
World 2
love 2
...

2  实现思路

Map函
        以字符作为key值,value为1,生成键值对。


Reduce函数
        获取Map输出的键值对,将各个键中的值相加,输出。

 

逻辑图:



 
 

3   代码实现

public class WordCount {

	public static class TokenizerMapper extends
			Mapper<Object, Text, Text, IntWritable> {

		private final static IntWritable one = new IntWritable(1);
		private Text word = new Text();

		public void map(Object key, Text value, Context context)
				throws IOException, InterruptedException {
			StringTokenizer itr = new StringTokenizer(value.toString());
			while (itr.hasMoreTokens()) {
				word.set(itr.nextToken());
				context.write(word, one);
			}
		}
	}

	public static class IntSumReducer extends
			Reducer<Text, IntWritable, Text, IntWritable> {
		private IntWritable result = new IntWritable();

		public void reduce(Text key, Iterable<IntWritable> values,
				Context context) throws IOException, InterruptedException {
			int sum = 0;
			for (IntWritable val : values) {
				sum += val.get();
			}
			result.set(sum);
			context.write(key, result);
		}
	}

	public static void main(String[] args) throws Exception {
		Configuration conf = new Configuration();
		
		Job job = new Job(conf, "word count");
		job.setJarByClass(WordCount.class);
		
		job.setMapperClass(TokenizerMapper.class);
		job.setCombinerClass(IntSumReducer.class);
		job.setReducerClass(IntSumReducer.class);
		
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);
		
		FileInputFormat.addInputPath(job, new Path("input"));
		FileOutputFormat.setOutputPath(job, new Path("output"));
		System.exit(job.waitForCompletion(true) ? 0 : 1);
	}
}

4  总结:

         这个例子是Hadoop官网给出的例子,比较简单,是MapReduce的HelloWorld小程序。

 

  • 大小: 40.8 KB
3
2
分享到:
评论

相关推荐

    MapReduce实现单词计数并排序.zip_mapReduce_云计算_单词计数_统计单词_输出前三

    在"MapReduce实现单词计数并排序.java"文件中,你可以找到具体的实现细节,包括Mapper类、Reducer类以及主程序,它们共同完成了从读取输入数据、解析文本、计算单词频率到输出结果的整个流程。 总结起来,这个...

    MapReduce编程实例:单词计数

    在前面《MapReduce实例分析:单词计数》教程中已经介绍了用 MapReduce 实现单词计数的基本思路和具体执行过程。下面将介绍如何编写具体实现代码及如何运行程序。 首先,在本地创建 3 个文件:file00l、file002 和 ...

    MapReduce实例分析:单词计数

    首先,检查单词计数是否可以使用 MapReduce 进行处理。因为在单词计数程序任务中,不同单词的出现次数之间不存在相关性,相互独立,所以,可以把不同的单词分发给不同的机器进行并行处理。因此,可以采用 MapReduce ...

    mapreduce wc单词计数 自定义分区 自定义排序实现

    在这个特定的案例中,我们不仅实现了基本的WordCount功能,还扩展了MapReduce的能力,通过自定义分区和自定义排序来优化数据处理流程。 首先,基础的`WordCount`实现,通常包含以下四个步骤: 1. **Map阶段**:...

    MapReduce设计模式介绍.ppt

    1. 单词计数:使用 MapReduce 实现单词计数统计。 2. 倒排索引:使用 MapReduce 实现倒排索引构建。 总结 MapReduce 设计模式是大数据处理的核心组件,负责将大规模数据处理和分析任务分解为可并行处理的任务。...

    Hadoop- 单词计数(Word Count)的MapReduce实现.doc

    Hadoop单词计数(Word Count)的MapReduce实现 Hadoop是一个基于Java的开源大数据处理框架,它提供了一个分布式计算模型,称为MapReduce,用于处理大规模数据。MapReduce模型主要由两个阶段组成:Map阶段和Reduce...

    Hadoop mapreduce实现wordcount

    在这个案例中,我们将深入探讨如何在 Hadoop 环境中使用 MapReduce 实现 WordCount。 【描述】在 Hadoop 环境中,WordCount 的实现主要涉及两个关键阶段:Map 阶段和 Reduce 阶段。Map 阶段将原始输入数据(通常是...

    MapReduce读取单词个数.rar

    在这个单词计数的场景中,Reduce函数会将所有相同单词的计数加总,给出每个单词在整个数据集中的总数。 为了运行这个MapReduce程序,你需要一个Maven项目。Maven是一个构建工具,可以帮助管理和构建Java项目,包括...

    MapReduce实现TopN中文词频统计+英文词频统计+中文词频统计

    使用MapReduce框架实现(Spark我还不会 )区别于普通的单词计数,本次实现的是中文汉字计数(要使用分词器)区别于单纯的统计词数,本项目实现的是求汉字词频的TopN2. 实验过程MapReduce实现英文词频统计使用中文...

    集群MapReduce的包.rar

    这个名为"集群MapReduce的包.rar"的压缩文件很可能包含了一组资源,用于教授或实现MapReduce的单词计数功能。让我们深入探讨一下MapReduce、单词计数及其与云存储的关系。 MapReduce是Google提出的一种编程模型,它...

    基于MapReduce实现的TFIDF计算

    在实际项目中,可能会使用Hadoop或者其他支持MapReduce的框架来实现这个过程。 总结来说,基于MapReduce的TF-IDF计算是一个将分布式计算与文本分析相结合的过程,它能够高效地处理大量文档并计算出词的重要程度。...

    使用python实现mapreduce(wordcount).doc

    在大数据处理领域,Java 通常是首选语言,但考虑到Python在数据挖掘和深度学习中的便利性,我们可以使用Python来实现MapReduce。本篇文章将探讨如何在Hadoop平台上利用Python实现WordCount,一个经典的MapReduce示例...

    mapreduce的简单的原理和计数代码

    通过以上介绍,我们了解了MapReduce的基本原理以及如何利用Java编程语言实现一个简单的单词计数任务。MapReduce的核心思想在于将大数据问题分割成小问题,并在多个节点上并行处理,最后将结果合并。这种模式非常适合...

    wordcount:使用Java的Hadoop MapReduce单词计数

    字数 使用Java的Hadoop MapReduce字数统计 运行: hadoop jar wordcount.jar "input_folder" "output_folder" “ input_folder”和“ output_folder”是HDFS上的文件夹。

    拓思爱诺大数据-第二次作业MapReduce编程

    这不仅包括编写Java代码实现Mapper和Reducer类,还涉及Hadoop的命令行工具使用,如提交作业、监控作业状态等。 此外,你还会接触到Hadoop分布式文件系统(HDFS),它是MapReduce处理数据的基础。HDFS设计为高容错、...

    大数据MapReduce实现基于白名单的Word Count

    本示例中的“大数据MapReduce实现基于白名单的Word Count”是一个具体的应用案例,旨在通过MapReduce算法统计指定白名单词汇在文本数据中的出现频率。以下是对这个主题的详细解释: 1. **MapReduce模型**: ...

    Hadoop简单应用案例,包括MapReduce、单词统计、HDFS基本操作、web日志分析、Zookeeper基本使用、Hive简单操作等

    程序会读取文本文件,对其中的每个单词进行计数,然后输出每个单词及其出现次数。这展示了如何利用Hadoop进行文本分析,对理解MapReduce的工作原理很有帮助。 3. **HDFS(Hadoop Distributed File System)基本操作...

    MapReduce基础实战:从理论到实践-掌握分布式计算核心技术

    ② 掌握如何用Python实现单词计数的MapReduce程序;③ 了解MapReduce在日志分析、文本处理、机器学习等领域的实际应用;④ 评估MapReduce在不同场景中的适用性和局限性。 阅读建议:结合实际案例和Python代码进行...

    大数据实验四-MapReduce编程实践

    本次实验的主要内容是使用MapReduce框架来实现WordCount词频统计功能,即统计HDFS(Hadoop Distributed File System)系统中多个文本文件内的单词出现频率。具体步骤包括: 1. **编写Map处理逻辑**:设计一个Map...

Global site tag (gtag.js) - Google Analytics