求问如何画MapReduce统计单词个数过程?

试画出使用MapReduce来对英语句子“Whatever is worth doing is worth doing well”进行单词统计的过程

0

1个回答

package org.apache.hadoop.examples;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

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();
    String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
    if (otherArgs.length != 2) {
      System.err.println("Usage: wordcount <in> <out>");
      System.exit(2);
    }
    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(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}
    这是使用Java写的,具体你可以搭建Hadoop单机,然后引用这串代码,就可以统计啦,网上教程很多
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个单词统计的实例,怎样通过MapReduce完成排序?
假设有一批海量的数据,每个数据都是由26个字母组成的字符串,原始的数据集合是完全无序的,怎样通过MapReduce完成排序工作,使其有序(字典序)呢?
【MapReduce实例】单词统计
一、实例描述计算出文件中各个单词的频数,要求输出结果按照单词出现的频数进行降序。 比如,输入文件 file1.txt,其内容如下: hello word bye world file2.txt,其内容如下: hello hadoop goodbye hadoop 对应上面给出的输入样例,其输出样例为: 2 hadoop 2 hello 2 worl
mapreduce英语单词频次统计与单词个数统计(云计算实验作业20180517)
课程原地址:http://hbust.shiyanbar.com/course/91079上课老师:李歆实验时间:20180517地点:云桌面实验人:郭畅 【实验目的】1) 理解mapreduce执行原理2) 理解map,reduce阶段3) 熟悉map和reduce代码的编写【实验原理】需求:对下面原始数据进行处理,把文档中所有的英文单词进行统计相同单词的个数。原始数据:The ASF prov...
MapReduce 单词统计
                                                                       使用hadoop2.7.4 1,首先准备数据,在网上随便抄了一段文章 有一天, 一个外来的僧人要到对面村庄去, 临行前村民反复叮嘱他说: 路途中如若看到路标被风刮倒或被掩埋, 要重新树立起来,以免后面的人迷失方向。 僧人刚上路时, 牢牢记着村民嘱咐,...
Hadoop-MapReduce初步应用-统计单词个数
关于hadoop在电脑上安装的过程,请参考我的上一篇博文: Hadoop-利用java API操作HDFS文件我的安装和配置环境是Windows下伪分布模式hadoop下使用eclipse进行开发。 上面的文中有关于安装和配置hadoop的视频和安装软件所需的全部资料。下面是我们本文重点。统计文件中单词的个数。我们再看Hadoop的一般书籍中,基本都会把这个程序作为hadoop的MapReduc
Mapreduce实例---统计单词个数(wordcount)
一:需要的jar包 Hadoop-2.4.1\share\hadoop\hdfs\hadoop-hdfs-2.4.1.jar hadoop-2.4.1\share\hadoop\hdfs\lib\所有jar包 hadoop-2.4.1\share\hadoop\common\hadoop-common-2.4.1.jar hadoop-2.4.1\share\hadoop\common
MapReduce统计以某字母开头的单词的平均长度
MapReduce统计以某字母开头的单词的平均长度 用MapReduce编写程序主要的就是编写Map和Reduce函数、main函数 java代码如下 package section1; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuratio...
MapReduce进行本地的单词统计
1、处理输入文本为对,继承Mapper方法 package com.cr.hdfs; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Map
MapReduce之单词(字母)个数的统计
package com.hadoop.study; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop
MapReduce——统计单词出现次数WordCount
package com.oracle.WorldCount; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import o...
利用mapreduce统计单词个数
wordCount.classpackage wordCount;import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.had
MapReduce做词频率统计
WordCount堪称大数据界的HelloWorld  移除点击此处添加图片说明文字 ​今天来学习搭建hadoop开发环境。并且制作一个本地测试版本的WordCount,稍后我们将会来开发实际项目,在此之前,我们需要了解mapreduce所能做的事情。 先介绍一下业务需求假如我们有这样一个文件: hadoop hello world hello hadoop hbase
mapreduce实例--统计文本中的单词数
mapreduce实例–统计文本中的单词数 一:环境描述: hadoop2.8.1 文件上传至hdfs,程序从hdfs读取计算,计算结果存储到hdfs 二:前期准备 2.1 上传文件word.txt至hdfs word.txt 文件内容: Could not obtain block, Could not obtain block, Could not obtain ...
通过MapReduce统计每个单子在每个文件中出现的次数(FileSplit的使用),单词作为key,所在文本和次数作为value进行统计
代码如下:package cn.toto.bigdata.mr.index; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.
使用MapReduce实现单词计数
1  描述        假定有一组文件,以空格为分隔符存放着数据。计算一组文件中字符所出现的次数。        输入: Hello World Hello my love Hello World , i love you      输出: Hello 3 World 2 love 2 ... 2  实现思路 Map函数:        以字符作为key值,value...
MapReduce统计文本单词,逆序输出统计结果
1、准备数据 wordcount2.txt They say we are what we are But we do not have to be I am bad behavior but I do it in the best way I will be the watcher Of the eternal flame I will be the guard dog of all y...
用Hive实现MapReduce的单词统计
一个简单的单词统计在用MapReduce来实现虽然是经典用例,但是现实起来还是比较复杂的。下面介绍如何用hive来实现单词统计。首先准备一个记录单词的word.txt然后在hive中新建一个表并将word.txt的数据导入到该表中然后运行如下的命令select tt.wordtxt,count(*) cc from ( select explode(split(line,' ')) as word...
MapReduce基础开发之一词汇统计和排序(wordcount)
统计/var/log/boot.log中含k的字符的数量,并对含k的字符按照数量排序。需分两个job完成,一个用来统计,一个用来排序。 一、统计 1、上传文件到hadoop:    1)新建文件夹:hadoop fs -mkdir /tmp/fjs    2)上传文件:hadoop fs -put /var/log/boot.log /tmp/fjs 2、编写wo
Hadoop MapReduce 单词统计示例
前言 百度词条 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的...
MapReduce实例——wordcount(单词统计)
1. MR实例开发整体流程 最简单的MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。在运行一个mapreduce计算任务时候,任务过程被分为两个阶段:map阶段和reduce阶段,每个阶段都是用键值对(key/value)作为输入(input)和输出(output)。main 函数将作业控制和文件输入/输出结合起来。 2. 环境...
Mapreduce单词计数的例子
WordCount类 package org.apache.hadoop.examples; //著名源文件存放的地方 import java.io.IOException; import jvaa.util.StringTokenizer; //将字符串按空格分开 import org.apache.hadoop.conf.Configuration //处理配置文件 import o...
模拟MapReduce编程的程序案例(用于统计文本中单词出现频率)
本案例要实现的目标:1、模拟修改配置,通过发指令的方式统计一个文件中出现的单词的字数。案例代码结构如下:在整个案例中需要有以下几类文件:A:worker服务端,用于类似Mapreduce接收jar,接收配置文件,执行业务逻辑B:程序客户端、用于组装配置文件、发送业务执行的命令(听过socket发送jarfile、jobconf、和job2run的命令)代码结构,每个包和代码作用介绍 cn.to
mapreduce框架设计思想,wordcount程序原理与实现
mapreduce框架设计思想,wordcount程序原理与实现
彷徨 | MapReduce实例四 | 统计每个单词在每个文件里出现的次数
示例:一个目录下有多个文件,每个文件里有相同的单词,统计每个单词在每个文件里出现的次数 即同一个单词在不同文件下的词频统计 文件目录如下: 各文件内容片断: 要求结果如下:及同一个单词在不同文件下的词频统计 思路: 第一步:我们可以先将单词和文件名作为key,将出现次数作为value,统计每个单词在每个文件里出现的次数 例: Mybatis-a.txt 6...
python 实现mapreduce词频统计
python实现mapreduce词频统计 执行方式:打开cmd命令,cd到代码所在文件夹,输入python wordcout_map.py > words.txt | sort | python wordcout_reduce.py执行
[hadoop]简单的MapReduce项目,计算文件中单词出现的次数(五)
计算文件中单词出现的次数,试题如下图 1、创建读取单词的文件tast,内容如下: hadoop core map reduce hiv hbase Hbase pig hadoop mapreduce MapReduce Hadoop Hbase spark 2、流程图如下: 根据上图得知,计算流程中Mapping和Reducing是需要自己编写功能,其他交给Map/Redu
初学Hadoop,统计Top10单词
课程明明叫SeachTechnology,本以为可以趁机好好学一下Lucene和Nutch,结果Project却是使用分布式计算框架Map/Reduce的开源项目Hadoop进行文档关键词的自动提取,算了,既来之则安之,都是Doug Cutting的作品啊。 Project要求是给定250个文章的摘要(trial data),通过三个步骤 1.preprocessing such as Par...
hadoop基础----hadoop实战(三)-----hadoop运行MapReduce---对单词进行统计--经典的自带例子wordcount
ass
和我一起学Hadoop(五):MapReduce的单词统计,wordcount
mapred 单词统计
使用Mapreduce案例编写用于统计文本中单词出现的次数的案例、mapreduce本地运行等,Combiner使用及其相关的知识,流量统计案例和流量总和以及流量排序案例,自定义Partitioner
工程结构:在整个案例过程中,代码如下:WordCountMapper的代码如下: package cn.toto.bigdata.mr.wc;   import java.io.IOException;   import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; impor
Hadoop单词统计
1. 本地创建文本文件 [root@s166 fantj]# mkdir input [root@s166 fantj]# cd input/ [root@s166 input]# echo &quot;hello fantj&quot; &amp;gt; file1.txt [root@s166 input]# echo &quot;hello hadoop&quot; &amp;gt; file2.txt [root@s166 input]#...
mapreduce统计数据库中的单词个数
1、建立数据库表 2、导入jar包 mysql-connector-java-5.1.38.jar 3、创建实体类 package com.cr.jdbc; import org.apache.hadoop.io.Writable; import org.apache.hadoop.mapred.lib.db.DBWritable; import java.io.D
大数据(十二) --使用MapReduce和SparkCore技术实现单词统计(WorldCount)案例
WorldCount案例示例数据需求分析计算分析MapReduce实现SparkCore实现 示例数据 需求分析 计算分析 MapReduce实现 SparkCore实现
Shell脚本实现MapReduce统计单词数程序
一、原理介绍 概述 Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如: 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer) $HADOOP_HOME/bin/hadoop jar $HAD...
使用map&set统计单词个数
统计输入字符串中的特定单词的个数 //或者统计除特定单词之外的个数
java实现字符串中的单词个数统计
/*  * 思路:要统计单词数,只需要统计字符串中非英文字母的个数(注意判断最后一个字符是否是英文字母)  */ public class WordDemo {  public static void main(String[] args) {   String s = &quot;I am a boy,I am come from Henan!&quot;;//定义一个字符串并赋值   int sum = word...
C++统计字符串中(文件中)单词个数
#include using namespace std; int countWords(char* p) {    int iCountWordNum = 0;    bool bIsWord = false;    while(*p)    {     char c = *p;     if((c >= 'A' && c = 'a' && c     {
spark 统计单词个数
//注意事项:在spark api 内不要使用 api外定义的变量,这样会破坏spark集群计算的特性。如果需要使用外部变量,通过spark broadcast来访问。 public class WordCount {     public static void main(String[] args){         long tmStart = System.currentTimeMi
[Java]对字符串中的每个单词个数进行统计
这是来自一道电面的题。单词统计很容易想到用Map来统计,于是想到了用HashMap。
MapReduce实现词频统计
问题描述:现在有n个文本文件,使用MapReduce的方法实现词频统计。附上统计词频的关键代码,首先是一个通用的MapReduce模块1:class MapReduce: __doc__ = '''提供map_reduce功能''' @staticmethod def map_reduce(i, mapper, reducer): """ map
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 问果大数据学院 java单词学习