大数据生态圈之MapReduce笔记
2019-07-29 20:24
204 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lx529068450/article/details/97677200
Map
/** mapper阶段业务逻辑实现的类 Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> */ public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ /* KEYIN:表示mapper数据输入的时候key的数据类型,在默认的读取数据组件下,叫InputFormat,它的行为是一行一行的读取待处理的数据读取一行,返回一行给我们的mr程序,这种情况下 keyin就表示每一行的起始偏移量 因此数据类型是Long VALUEIN:表述mapper数据输入的时候value的数据类型,在默认的读取数据组件下 valuein就表示读取的这一行内容 因此数据类型是String KEYOUT 表示mapper数据输出的时候key的数据类型 在本案例当中 输出的key是单词 因此数据类型是String VALUEOUT表示mapper数据输出的时候value的数据类型 在本案例当中 输出的key是单词的次数 因此数据类型是 Integer 这里所说的数据类型String Long都是jdk自带的类型 在序列化的时候 效率低下 因此hadoop自己封装一套数据类型 * long---->LongWritable * String-->Text * Integer--->Intwritable * null-->NullWritable */ return null }
Reduce
/** reducer阶段处理的类 */ public class WordCountReducer extends Reducer<Text,IntWritable,Text,IntWritable> { /* KEYIN:就是reducer阶段输入的数据key类型,对应mapper的输出key类型 在本案例中 就是单词 Text VALUEIN就是reducer阶段输入的数据value类型,对应mapper的输出value类型 在本案例中 就是单词次数 IntWritable KEYOUT就是reducer阶段输出的数据key类型 在本案例中 就是单词 Text VALUEOUTreducer阶段输出的数据value类型 在本案例中 就是单词的总次数 IntWritable */ return null }
Driver
/** * 这个类就是mr程序运行时候的主类,本类中组装了一些程序运行时候所需要的信息 * 比如:使用的是那个Mapper类 那个Reducer类 输入数据在那 输出数据在什么地方 */ public class WordCountDriver { public static void main(String[] args) throws Exception{ //通过Job来封装本次mr的相关信息 Configuration conf = new Configuration(); // conf.set("mapreduce.framework.name","local"); Job job = Job.getInstance(conf); //指定本次mr job jar包运行主类 job.setJarByClass(WordCountDriver.class); //指定本次mr 所用的mapper reducer类分别是什么 job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReducer.class); //指定本次mr mapper阶段的输出 k v类型 job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.class); //指定本次mr 最终输出的 k v类型 job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); //指定本次mr 输入的数据路径 和最终输出结果存放在什么位置 FileInputFormat.setInputPaths(job,"D:\\wordcount\\input"); FileOutputFormat.setOutputPath(job,new Path("D:\\wordcount\\output")); // job.submit(); //提交程序 并且监控打印程序执行情况 boolean b = job.waitForCompletion(true); System.exit(b?0:1); } }
完整代码 F:\IdeaProjects\example-mr
相关文章推荐
- 学习笔记:从0开始学习大数据-8.直接在Eclipse配置运行MapReduce程序
- 【大数据笔记03】MapReduce
- 大数据学习笔记之MapReduce
- 大数据学习笔记:编写Mapreduce代码并运行
- 数据挖掘笔记-分类-决策树-MapReduce实现-1
- 【笔记】Mapreduce数据倾斜与优化
- 大数据之hadoop[MapReduce]学习 笔记
- 大数据学习笔记——hadoop1.2.1 MapReduce简介
- 大数据学习笔记(十七)-MapReduce
- 大数据学习笔记之二十九 Hadoop的第二代MapReduce YARN
- 大数据学习笔记3--HDFS扩展和mapreduce工作过程
- 【Coursera课程笔记】Web智能和大数据Week3_MapReduce
- 机器学习实战笔记(十六):大数据与MapReduce
- 大数据IMF-L38-MapReduce内幕解密听课笔记及总结
- 大数据笔记11:MapReduce的运行流程
- 数据挖掘笔记-关联规则-FPGrowth-MapReduce实现
- hadoop学习笔记(十一):MapReduce数据类型
- 大数据IMF-L38-MapReduce内幕解密听课笔记及总结
- (防坑笔记)hadoop3.0 (四)MapReduce的输入输出解析及常用数据切分方式(附带压缩)
- 数据挖掘笔记-分类-决策树-MapReduce实现-2