`
free9277
  • 浏览: 104760 次
  • 性别: 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编程实例:单词计数

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

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

    给定一个文本文档,使用MapReduce思想统计出出现频率最高的前三个单词

    MapReduce实例分析:单词计数

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

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

    实现mr的wordcount功能和自定义分区的功能、自定义排序功能;com.ellis.mr1为类似wc功能,com.ellis.mr2为自定义分区功能,com.ellis.mr3为自定义排序功能

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

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

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

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

    实验项目 MapReduce 编程

    3. 查看 Hadoop 自带的 MR-App 单词计数源代码 WordCount.java,在 Eclipse 项目 MapReduceExample 下建立新包 com.xijing.mapreduce,模仿内置的 WordCount 示例,自己编写一个 WordCount 程序,最后打包成 JAR ...

    Hadoop原理与技术MapReduce实验

    1.单词计数实验(wordcount) (1)输入start-all.sh启动hadoop相应进程和相关的端口号 (2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行...

    MapReduce版的HelloWorld

    一个MapReduce版的单词计数程序,相当于MapReduce的HelloWorld,用装有Maven插件的Eclipse打开

    集群MapReduce的包.rar

    单词计数是最简单也是最能体现MapReduce思想的程序之一,可以成为MapReduce版的“Hello World”.单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数。

    word源码java-hadoop-test:hadoop、mapreduce的一些练习

    包org.dan.mr.wordcount MapReduce单词计数 包org.dan.mr.flowsum MapReduce流量统计 包org.dan.mr.flowsumsort MapReduce流量统计,按总流量排序 包org.dan.mr.order_pro MapReduce实现订单信息和产品信息的join...

    MapReduce_mapReduce_

    MapReduce--1--入门程序WordCountMapReduce界的helloworld程序就是WordCount程序。所谓WordCount,就是单词计数,就是用来统计一篇或者一堆文本文件中的各单词的出现次数。

    phoenix_wordcount.tar.gz_Hadoop Phoenix_mapReduce_phoenix wordc

    mapreduce算法的phoenix架构实现和一个使用实例,用mapreduce算法对一个输入的文本文件中的单词计数。

    编写Java程序,实现统计单词个数功能

    1. 创建目录 2. mkdir wcinput ...5. 调用上传的jar包,实现单词计数功能 hadoop jar wordcount.jar com.only.mapreduce.wordcount.WordcountDriver /user/wcinput /user/wcoutput 6. 查看结果 hadoop fs -

    dpark, 在 python 中,Spark的python 克隆,一个MapReduce相似的框架.zip

    dpark, 在 python 中,Spark的python 克隆,一个MapReduce相似的框架 DPark DPark是Spark的python 克隆,类似于支持迭代计算的MapReduce(R) 计算框架。单词计数( wc.py )的示例:import dparkfile = dpark.textFi

    课程“ Linux Kernel Internals”的互补并发程序-C/C++开发

    课程“ Linux Kernel Internals”项目的补充程序项目清单tpool:一个轻量级的线程池。 tinync:使用co互补程序的小型nc实现,用于课程“ Linux Kernel ...map-reduce:使用MapReduce进行单词计数。 许可证以上项目是

    papjuice:通过 Python Goggles 实现 MapReduce

    通过陈词滥调的 MapReduce 概念 - 字数统计考虑我们有三个文档,我们想要找到其中唯一单词的总计数。 我们可以使用 MapReduce 来利用分布式计算。 如果我们要使用生产级 MapReduce 解决方案,我们将使用 Hadoop 或 ...

    big_data:有关Hadoop,MapReduce,Spark,Docker的教程的集合

    一个非常基本的MapReduce单词计数示例 一个简单的MapReduce作业,带有mrjob Hadoop溢出解释 演示,用于对Hadoop集群进行基准测试 面向初学者的Docker:容器世界入门 Pyspark基本演示 使用pyspark生成ngram的基本...

    大数据技术原理与应用实验

    实验十一 MapReduce单词计数 85 实验十二 MapReduce数据去重 94 实验十三 MapReduce单表关联 103 第五章 统一资源管理系统YARN 114 实验十四 YARN命令基础 114 实验十五 YARN命令进阶 118 第六章 分布式列族数据库...

Global site tag (gtag.js) - Google Analytics