1、实验目的
(1)通过实验掌握MapReduce编程编程的基本方法
(2)通过MapReduce编程来实现一些常用的数据处理方法,包括求最大值、去重等。
2、实验内容
1、训练要点
(1)掌握MapReduce的执行流程。
(2)掌握基础的MapReduce程序编写。
(3)掌握MapReduce程序的输出/输出格式。
2、需求说明
有一个样例文件subject_score,即成绩表A。文件中的每一行数据包含两个字段:科目和分数。要求获取成绩列表中每个科目成绩最高的记录,并将结果输出到最高成绩表B。
3、实现思路及步骤
(1)在Mapper类中,map函数读取成绩表A中的数据,直接将读取的数据以空格(参考书籍配套资源中的格式)分隔,组成键值对<科目,成绩>, 即设置输出键值对类型为<Text,IntWritable>。
(2)在Reducer中,由于map函数输出键值对类型是<Text, IntWritable>,所以Reducer
接收的键值对是<Text.Iterable>。 针对相同的键(即科目),遍历比较它的值
(即成绩),找出最高值(即最高成绩),最后输出键值对<科目,最高成绩>。
3、实验步骤
准备类型如下数据文本
在eclipse里面运行代码成功后,打包到相应路径
package test;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.</