MapReduce单词统计
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,WordcountMapper类package com.sky.mr.wordcount;import org.apache.hadoop.io.IntWritable;import org.apac
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
vc 连接数据库
韩国服务器代理ip
义乌市网络安全应急指挥中心大楼
天玥数据库审计 远程
达内网络安全教育培训
批量下载tcga数据库
高级数据库管理工程师职称
米尺网络技术最新
霍林河天气预报软件开发
服务器将在3分钟内停机
王牌斗地主服务器进不去了
如何提升服务器安全性
广州知识课堂软件开发
立项申请书与软件开发
长宁区营销软件开发供应商
工程计算软件开发教程
长沙辰运软件开发加班多么
研究生读网络安全专业怎么样
网络安全生物数据
小学网络安全宣传方案
数据库失效连接剔除
萤石服务器地址
数据库查询主要功能有哪些
软件开发流程是什么意思
百万级数据库服务器选择
搞软件开发需要i7cpu吗
山西网络安全突发事件应急演练
资讯行数据库网
软件开发工程师转入互联网行业
西工大网络安全试题