文章目录
一、实战概述
-
本实战项目采用Hadoop MapReduce技术处理学生月考成绩数据,旨在计算每位同学语文、数学和英语三科的平均分。首先,在虚拟机上准备了三个文本文件分别记录各科成绩,并将这些文件上传至HDFS指定目录
/subjectavg/input
中。 -
通过IntelliJ IDEA创建名为
MRSubjectAvg
的Maven项目,配置依赖于Apache Hadoop 3.3.4版本客户端及JUnit测试框架。在项目中定义了一个Student
实体类,该类实现Writable接口以便于序列化与反序列化,包含学生姓名以及三科成绩属性。 -
映射器
SubjectAvgMapper
继承自Mapper<LongWritable, Text, Text, Student>
,其功能是从不同科目成绩文件中读取行数据并解析出学生姓名和对应科目的分数,封装成Student
对象输出。归并器SubjectAvgReducer
则继承自Reducer<Text, Student, Text, NullWritable>
,负责聚合相同学生的所有成绩记录,计算每科总成绩后求得平均分。 -
同时,配置日志系统以方便调试。运行