文档章节

hadoop案例WordCount

蓝狐乐队
 蓝狐乐队
发布于 2014/02/21 11:01
字数 295
阅读 62
收藏 1

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();
    //TextInput默认设置是读取一行数据,map阶段是按照我们的需求将读取到的每一行进行分割。
    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
     StringTokenizer line = new StringTokenizer(value.toString());
     while(line.hasMoreTokens()){
      word.set(line.nextToken());
      context.write(word, one);
     }
    }
  }
  //在reduce阶段,是map阶段分割后的经过排序后的数据向reduce任务中copy的过程,在此过程中会有一个背景线程将相同的key值进行合并,并将其value值归并到一个类似集合的容器中,此时的逻辑就是我们要遍历这个容器中的数据,计算它的值,然后输出。
  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);
  }
}

© 著作权归作者所有

蓝狐乐队
粉丝 106
博文 322
码字总数 89813
作品 0
昌平
程序员
私信 提问
运行Hadoop自带的wordcount单词统计程序

0.前言 前面一篇《Hadoop初体验:快速搭建Hadoop伪分布式环境》搭建了一个Hadoop的环境,现在就使用Hadoop自带的wordcount程序来做单词统计的案例。 1.使用示例程序实现单词统计 (1)wordc...

xpleaf
2017/09/03
0
0
【hadoop】3.本地运行模式

简介 从本章节你可以学习到: hadoop的三大运行模式的简单介绍。 本地模式下的两个经典案例。 1、hadoop的运行模式 (1)本地模式(local(standaolne) mode):不需要启用任何守护进程,所有程...

落花时节又逢卿
01/03
9
0
Hadoop单点部署与案例开发(微博用户数据分析)

一、环境搭建 1、Hadoop运行环境搭建 1.1 安装虚拟机 (1)下载并安装VMware虚拟机软件。 (2)创建虚拟机,实验环境虚拟机配置如下图所示。 (3)安装Ubuntu系统,安装结果如下图所示。 1....

天夣
2017/06/02
0
0
启动HDFS并运行MapReduce程序

执行步骤:(1)配置集群(2)启动、测试集群增、删、查(3)执行wordcount案例 一、配置集群   1.在 hadoop-env.sh配置文件添加 jdk绝对路径  export JAVAHOME=/opt/module/jdk1.8.0181...

|瑾诺学长|
2018/08/07
0
0
hadoop-002-Eclipse 运行WordCount 案例

1、如过提示 eclipse 无法编译 文件 ,提示对某文件无权限。 chmod -R 777 workspace 2、在eclipse中跑Hadoop测试用例时,出现这样的错误 Exception in thread "main" org.apache.hadoop.m...

jxlgzwh
2016/01/24
152
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部