package algorithm;import java.io.IOException;
import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;//前两个参数是固定的后两个根据需要修改  第四个参数我改成了IntWritable  比int写的快
public class TestMapper1 extends Mapper<LongWritable, Text, Text, IntWritable> {//key是行好  value是哪一行内容//文件多少行 map调用多少次public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {String line = value.toString();StringTokenizer st = new StringTokenizer(line);while(st.hasMoreElements()) {String word = st.nextToken();context.write(new Text(word), new IntWritable(1));//map的输出}}}

  

package algorithm;import java.io.IOException;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;public class TestReduce1 extends Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterable<IntWritable> iterable, Context context)throws IOException, InterruptedException {// process valuesint sum = 0;for (IntWritable val : iterable) {sum += val.get();//get转为整数}context.write(key, new IntWritable(sum));}}

  

package algorithm;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;public class Mapreduce1 {public static void main(String[] args) throws Exception {Configuration conf = new Configuration(); //对应于mapred-site.xmlJob job = new Job(conf,"WordCount");job.setJarByClass(Mapreduce1.class);job.setMapperClass(TestMapper1.class);job.setReducerClass(TestReduce1.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);job.setNumReduceTasks(1);//"/in"解析不了  提示文件不存在 因为把他们认为是本地文件了 因为有个 file:/FileInputFormat.addInputPath(job, new Path("hdfs://192.168.58.180:8020/in"));//输出文件不能存在   FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.58.180:8020/wordcount"));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

  

MapReduce实现WordCount相关推荐

  1. MapReduce示例——WordCount(统计单词)

    MapReduce示例--WordCount(统计单词) 过程分析 统计单词,把数据中的单词分别统计出出现的次数 过程图(图片源自网络): 实现Mapper.Reducer.Driver WordCo ...

  2. idea下mapreduce的wordcount

    idea下mapreduce的wordcount pom.xml <?xml version="1.0" encoding="UTF-8"?> ​ ...

  3. 第一个MapReduce程序-------WordCount

    本关任务 词频统计是最能体现MapReduce思想的程序,结构简单,上手容易. 词频统计的大致功能是:统计单个或者多个文本文件中每个单词出现的次数,并将每个单词及其出现频率按照<k,v>键 ...

  4. Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  5. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  6. hadoop(9)--MapReduce入门WordCount

    众所周知,hadoop的核心有hdfs,mapReduce,之前8次的分享都是在将hdfs,那么从这次开始来分享一下mapReduce MapReduce就是java程序,这一句话一出来让我这个jav ...

  7. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount

    HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理.HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现 ...

  8. Hadoop实例之利用MapReduce实现Wordcount单词统计 (附源代码)

    大致思路是将hdfs上的文本作为输入,MapReduce通过InputFormat会将文本进行切片处理,并将每行的首字母相对于文本文件的首地址的偏移量作为输入键值对的key,文本内容作为输入键值对的v ...

  9. MapReduce执行WordCount操作

    MapReduce 数字统计例子WordCount 在单机环境上运行WordCount.java程序 简单配置为:/etc/hosts: Core-site.xml 在这两个配置文件下运行WordCo ...

  10. MapReduce之WordCount案例

    前言 学习大数据框架通常都是从wordcount案例开始的,也是学习框架的基础,wordcount虽然简单,如果能彻底搞清楚其运行原理,对后续深入学习和掌握MapReduce非常有帮助的,本篇以一个w ...

最新文章

  1. ArrayList和Vector有什么区别?
  2. 日期代码的js 中将2012年显示成了112年
  3. css垂直居中技巧总结
  4. 简单排序--插入排序
  5. 请编写一个程序,用于统计字符串中每个字母的出现次数(字母忽略大小写),统计出结果后,请按照{'a':3,'b':2}的格式输出。
  6. 电脑无线网络与服务器共享,图文详解win7笔记本如何实现内置无线局域网卡共享...
  7. 八皇后问题--C语言学习笔记
  8. java底层app_Java底层类和源码分析系列-ArrayBlockingQueue底层架构和源码分析
  9. fiddler监控手机请求
  10. 模块化编程和Jigsaw项目最新早期访问版本使用教程
  11. 互联网日报 | 360企业安全更名“政企安全”;B站获欢喜传媒独家外部播放权;银联发布首款数字银行卡...
  12. Scrapy-2:东莞阳光政务平台
  13. 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
  14. 可以替代树莓派4(raspberry pi 4B)的tinker board 2
  15. HTML内核超炫酷北漂鱼引导页源码
  16. 关于严格模式的简单介绍
  17. 利用 element ui 进度条实现渐变 条纹进度条
  18. 用paddleocr识别汉字_基于Paddle的截图OCR文字识别的实现
  19. 国际网络收款工具Paypal注册图文教程
  20. 在PHP中如何获取用户的真实IP

热门文章

  1. POJ 1300 Door Man 欧拉路的判断
  2. 适应adblock plus 规则的简单正则表达式匹配
  3. SSAS事实表和维度表数据类型必须一致
  4. 本地chrome调试服务器node
  5. 表单和ajax中的post请求后台获取数据方法
  6. 2017中国大学生程序设计竞赛 - 女生专场C【前后缀GCD】
  7. 反编译,修改jar文件
  8. Android学习笔记27:网格视图GridView的使用
  9. c#使用私有构造方法
  10. 知识整理2019清北学堂提高储备D1