千家信息网

MapReduce单词统计

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,WordcountMapper类package com.sky.mr.wordcount;import org.apache.hadoop.io.IntWritable;import org.apac
千家信息网最后更新 2026年11月01日MapReduce单词统计

WordcountMapper类

package com.sky.mr.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 org.junit.Test;import java.io.IOException;public class WordcountMapper extends Mapper {    //由于每读一行文本数据,就要调用一次map方法,为了避免多次创建对象,浪费内存资源,将Text,IntWritable对象创建在    //map方法之外   Text k = new Text();   IntWritable v  = new IntWritable(1);    @Override    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {        //获取每一行的文本内容        String line = value.toString();        //按空格分割        String[] words = line.split(" ");        //转换数据格式,输出        for ( String word: words) {            k.set(word);            context.write(k, v);        }    }}

WordcountReducer类

package com.sky.mr.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 {    IntWritable v  = new IntWritable();    @Override    protected void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException {        //求每组相同key的总个数        int sum = 0;        for ( IntWritable count:values) {            sum += count.get();        }        //输出        v.set(sum);        context.write(key, v);    }}

WordcountDriver类

package com.sky.mr.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, ClassNotFoundException, InterruptedException {        //1、获取配置信息以及job对象        Configuration conf = new Configuration();        Job job = Job.getInstance(conf);        //2、设置jar包路径        job.setJarByClass(WordcountDriver.class);        //3、关联自定义mapper和reducer类        job.setMapperClass(WordcountMapper.class);        job.setReducerClass(WordcountReducer.class);        //4、设置Map输出key和value类型         job.setMapOutputKeyClass(Text.class);         job.setMapOutputValueClass(IntWritable.class);        //5、设置最终结果key,value类型         job.setOutputKeyClass(Text.class);         job.setOutputValueClass(IntWritable.class);        //6、设置文件输入输出路径        FileInputFormat.setInputPaths(job,new Path(args[0]));        FileOutputFormat.setOutputPath(job,new Path(args[1]));        //7、将封装了MapReduce程序运行参数的job对象,提交到Yarn集群        boolean result = job.waitForCompletion(true);        System.exit(result?0:1);    }}

输入文件

import org apache hadoop io
import org apache hadoop io
import org apache hadoop
import java io IOException

输出文件

IOException 1
apache 3
hadoop 3
import 4
io 3
java 1
org 3

输出 对象 文件 一行 数据 文本 方法 类型 路径 输入 相同 个数 信息 内存 内容 参数 格式 程序 空格 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 上海卓越科技互联网 深圳恒合互联网络科技有限公司 中国 科技 互联网 互联网科技的英文 亿策互联网科技 银优互联网科技有限公司 伴你行互联网科技有限公司 天下捷融互联网科技 富国互联网科技创新基金 中化能源互联网科技招聘 成都铂石互联网科技做什么的 福建科技产业互联网发展 民营互联网公司国防科技 徐州市互联网科技有限公司 元气玛特互联网科技公司是外包吗 启辰互联网科技 广州互联网高科技取餐柜 东营紫格互联网科技 东风日产互联网科技公司叫什么 博兴的互联网电子科技公司 成都铂石互联网科技做什么的 互联网对科技的发展 宜昌元轩互联网科技有限公司 伍佰万互联网科技怎么赚钱 互联网科技快讯热点 互联网科技年终奖 昆明中奇联合互联网科技 现代科技的标志之一的互联网 互联网科技快速发展优美句子
0