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小程序。
相关推荐
在前面《MapReduce实例分析:单词计数》教程中已经介绍了用 MapReduce 实现单词计数的基本思路和具体执行过程。下面将介绍如何编写具体实现代码及如何运行程序。 首先,在本地创建 3 个文件:file00l、file002 和 ...
给定一个文本文档,使用MapReduce思想统计出出现频率最高的前三个单词
首先,检查单词计数是否可以使用 MapReduce 进行处理。因为在单词计数程序任务中,不同单词的出现次数之间不存在相关性,相互独立,所以,可以把不同的单词分发给不同的机器进行并行处理。因此,可以采用 MapReduce ...
实现mr的wordcount功能和自定义分区的功能、自定义排序功能;com.ellis.mr1为类似wc功能,com.ellis.mr2为自定义分区功能,com.ellis.mr3为自定义排序功能
Hadoop- 单词计数(Word Count)的MapReduce实现.doc
字数 使用Java的Hadoop MapReduce字数统计 运行: hadoop jar wordcount.jar "input_folder" "output_folder" “ input_folder”和“ output_folder”是HDFS上的文件夹。
3. 查看 Hadoop 自带的 MR-App 单词计数源代码 WordCount.java,在 Eclipse 项目 MapReduceExample 下建立新包 com.xijing.mapreduce,模仿内置的 WordCount 示例,自己编写一个 WordCount 程序,最后打包成 JAR ...
1.单词计数实验(wordcount) (1)输入start-all.sh启动hadoop相应进程和相关的端口号 (2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行...
一个MapReduce版的单词计数程序,相当于MapReduce的HelloWorld,用装有Maven插件的Eclipse打开
单词计数是最简单也是最能体现MapReduce思想的程序之一,可以成为MapReduce版的“Hello World”.单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数。
包org.dan.mr.wordcount MapReduce单词计数 包org.dan.mr.flowsum MapReduce流量统计 包org.dan.mr.flowsumsort MapReduce流量统计,按总流量排序 包org.dan.mr.order_pro MapReduce实现订单信息和产品信息的join...
MapReduce--1--入门程序WordCountMapReduce界的helloworld程序就是WordCount程序。所谓WordCount,就是单词计数,就是用来统计一篇或者一堆文本文件中的各单词的出现次数。
mapreduce算法的phoenix架构实现和一个使用实例,用mapreduce算法对一个输入的文本文件中的单词计数。
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相似的框架 DPark DPark是Spark的python 克隆,类似于支持迭代计算的MapReduce(R) 计算框架。单词计数( wc.py )的示例:import dparkfile = dpark.textFi
课程“ Linux Kernel Internals”项目的补充程序项目清单tpool:一个轻量级的线程池。 tinync:使用co互补程序的小型nc实现,用于课程“ Linux Kernel ...map-reduce:使用MapReduce进行单词计数。 许可证以上项目是
通过陈词滥调的 MapReduce 概念 - 字数统计考虑我们有三个文档,我们想要找到其中唯一单词的总计数。 我们可以使用 MapReduce 来利用分布式计算。 如果我们要使用生产级 MapReduce 解决方案,我们将使用 Hadoop 或 ...
一个非常基本的MapReduce单词计数示例 一个简单的MapReduce作业,带有mrjob Hadoop溢出解释 演示,用于对Hadoop集群进行基准测试 面向初学者的Docker:容器世界入门 Pyspark基本演示 使用pyspark生成ngram的基本...
实验十一 MapReduce单词计数 85 实验十二 MapReduce数据去重 94 实验十三 MapReduce单表关联 103 第五章 统一资源管理系统YARN 114 实验十四 YARN命令基础 114 实验十五 YARN命令进阶 118 第六章 分布式列族数据库...