一个统计文件中单词出现次数的Mapreduce案例

WordCountMapper.java中的内容:

package com.jxd.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {private Text outK = new Text();private IntWritable outV = new IntWritable(1);@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {String line = value.toString();String[] words = line.split(" ");for (String word : words) {outK.set(word);context.write(outK, outV);}}
}

WordCountReducer.java中的内容

package com.jxd.mapreduce.wordcount;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {private IntWritable outV = new IntWritable();@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable value : values) {sum += value.get();}outV.set(sum);context.write(key, outV);}
}

WordCountDriver.java中的内容:

package com.jxd.mapreduce.wordcount;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.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class WordCountDriver {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {//1. 获取jobConfiguration configuration = new Configuration();Job job = Job.getInstance(configuration);//2. 设置jar包路径job.setJarByClass(WordCountDriver.class);//3. 关联mapper和reducerjob.setMapperClass(WordCountMapper.class);job.setReducerClass(WordCountReducer.class);//4. 设置map输出的kv类型job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);//5. 设置最终的kv类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//6. 设置输入路径和输出路径FileInputFormat.setInputPaths(job, new Path("G:\\input\\inputword"));FileOutputFormat.setOutputPath(job, new Path("G:\\output\\WordCount"));//7. 提交jobboolean result = job.waitForCompletion(true);System.exit(result ? 0 : 1);}
}

一个Mapreduce案例相关推荐

  1. 15.大数据---Mapreduce案例之---统计手机号耗费的总上行流量、下行流量、总流量

    Mapreduce案例之-统计手机号耗费的总上行流量.下行流量.总流量 1.需求: 统计每一个手机号耗费的总上行流量.下行流量.总流量 2.数据准备: 2.1 输入数据格式: 时间戳.电话号码.基站的 ...

  2. Python:通过一个小案例深入理解IO多路复用

    通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import timestart = time.time()u ...

  3. 我的第一个MapReduce程序(WordCount)

    万事开头难!长途从第一步开始!MapReduce编程也一样! 下面是本人编写的第一个MapReduce程序以及个人的一些理解! 准备条件: 1.安装hadoop 2.工具:eclipse(已经安装了h ...

  4. Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序

    网友分享,拿来共享一下 这是Hadoop学习全程记录第2篇,在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序. 新说明一下我的开发环境: 操作系统:在windows下使用wub ...

  5. hadoop下实现kmeans算法——一个mapreduce的实现方法

    写mapreduce程序实现kmeans算法,我们的思路可能是这样的 1. 用一个全局变量存放上一次迭代后的质心 2. map里,计算每个质心与样本之间的距离,得到与样本距离最短的质心,以这个质心作为 ...

  6. BaseAdapter的一个简单案例

    BaseAdapter的一个简单案例 主Activity import android.os.Bundle; import android.app.Activity; import android.v ...

  7. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  8. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  9. Wordcount on YARN 一个MapReduce示例

    Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...

最新文章

  1. Java 理论与实践: 正确使用 Volatile 变量
  2. linux内核模块的强制删除-结束rmmod这类disk sleep进程
  3. jquery iCheck 插件
  4. 【转】CLASS ALV(CL_GUI_ALV_GRID) 添加保存布局(Save Layout)的按钮
  5. 用Python编写小工具下载OSM路网数据
  6. C++const修饰成员函数
  7. mysql数据库、表、索引、触发器
  8. OpenCV_Python教程 系列!
  9. LSGO软件技术团队2015~2016学年第四周(0921~0927)总结
  10. python怎么操作_python怎么操作mysql
  11. 查询数据去除后面无用的0_OTM数据库清理超时无效连接--SQLNET.EXPIRE_TIME=10
  12. mysql根据不同的值查询不同的字段_sql根据一个字段不同值查询不同表中的一个字段...
  13. vc++/c++ 汉字取拼音首字母
  14. 三菱plc pwm指令_三菱PLC高速处理指令编程
  15. 孪生再世代表数字几_孪生(27)_亦舒_梦远书城
  16. jquery实现返回顶部功能
  17. window电脑 休眠后无法唤醒 解决办法
  18. Java 文字转拼音工具类
  19. 微信小程序之个人中心静态页面
  20. NLTK01 《NLTK基础教程--用NLTK和Python库构建机器学习应用》

热门文章

  1. 【线上分享】下一代互联网通讯协议:QUIC
  2. 网易易盾李雨珂:服务性能+算法确定性优化,迎接5G时代内容安全爆发式流量增长...
  3. 【大会】技术决策背后的商业逻辑
  4. 音视频技术开发周刊 76期
  5. 网易工业级WebRTC应用实践深度解析
  6. 《Go语言圣经》学习笔记 第一章 Go语言入门
  7. Matlab获取新浪财经实时行情
  8. 每次创建maven都要重新设置set,如何将本地maven设置为默认的maven
  9. java设计模式--单例设计模式
  10. leetcode 316. Remove Duplicate Letters | 316. 去除重复字母(单调栈解法)