MapReduce单词统计
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,WordcountMapper类package com.sky.mr.wordcount;import org.apache.hadoop.io.IntWritable;import org.apac
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
空军职工数据库
文旅局网络安全工作情况报告
物联网远程医疗检测数据库
本地网址数据库
数据库磁盘io
吴忠市网络安全平台
网络安全对个人层面的影响
巨杉数据库sql报错
如何在服务器上配置数据库
生产环境网络安全
第三代数据库技术特点
数据库技术与应用 安徽大学
互联网大会十五项黑科技是
日本服务器数据丢失感想
领导软件开发团队电子书
深圳实力教育系统开发软件开发
flask数据库模式
新高区水果龙仔网络技术
网络安全维护的奖
青岛市南区软件开发中心
计算机网络技术和数字媒体
同上一堂课网络安全线上讲座图片
手机软件开发预算
如何建立高质量的客户数据库
空军职工数据库
电脑网络技术知识和能力
lol手游马来西亚服务器
数据库安全总结
第一观点网络技术有限公司
日本服务器数据丢失感想