CUIT大数据实验:MapReduce日志分析与排序

需积分: 0 4 下载量 123 浏览量 更新于2024-06-27 收藏 623KB DOCX 举报
"cuit大数据实验3 - 大数据体系与技术 MAPREDUCE实验 实现用户登录日志的访问次数统计及排序" 在这个“cuit大数据实验3”中,学生进行了一个MAPREDUCE实验,该实验的目标是处理社交网站用户的登录日志记录,以统计每个自然日的用户访问次数,并对这些次数进行排序。实验的具体步骤和知识点如下: 1. **数据背景**:日志记录来源于社交网站,包含800万行用户邮件地址,代表800万次登录事件。这些数据用于运营商分析用户行为,制定运营策略。 2. **MAPREDUCE概念**:MAPREDUCE是一种分布式计算模型,由Google提出,主要用于大规模数据集的并行处理。在这个实验中,它被用来处理和分析用户登录日志。 3. **Mapper阶段**:Mapper类的主要任务是接收输入数据,对每个用户登录日志(可能是以邮件地址的形式)进行处理。在提供的代码中,Mapper接收LongWritable类型的键和Text类型的值,然后输出新的键值对,其中键是用户访问日期,值是1,表示一次访问。注意,mapper的输出是原始数据经过初步处理后的形式,以便于Reducer进行下一步操作。 4. **数据清洗**:在实验前可能进行了数据清洗,将原始日志文件转换为包含用户名称和访问日期的格式,以便于分析。 5. **Reducer阶段**:Reducer负责聚合Mapper的输出,即收集同一日期的所有访问次数,最终输出<日期,访问次数>的键值对。在这个实验中,还需要实现按照访问次数排序的功能,这通常在Reducer中完成,通过比较和重新组织键值对来达到排序的目的。 6. **程序打包与运行**:实验中的Java程序被打包成JAR文件(20201118_3_1.jar),并在HDFS中上传数据文件(3.txt)到指定目录。接着,使用`hadoop jar`命令执行JAR包,指定了输入和输出路径。 7. **结果输出**:运行结果被保存在指定的输出目录(dp/20201118_out_2)下,文件名如part-r-00000,其中键值对为<访问次数,日期>,键值对之间以制表符分隔。 8. **注意事项**:在进行结果排序时,需要在Mapper的输出中改变键值对的顺序,使得键为访问次数,值为日期。同时,Reducer也需要相应地调整逻辑,以接收这种新的键值对格式。 9. **程序结构**:实验中的代码示例显示了一个自定义的Mapper类(CountMapper),它继承自`Mapper<LongWritable, Text, LongWritable, Text>`。Mapper类中的`map()`方法进行了关键的数据处理,而Reducer类(未在摘要中给出)则完成了数据聚合和排序的工作。 10. **运行截图**:实验结果通过截图展示,这部分信息没有在摘要中给出,但通常会显示实际的排序输出结果,比如每个日期对应的访问次数。 这个实验涵盖了大数据处理的基本流程,包括数据输入、预处理、分布式计算以及结果输出,具体应用了MAPREDUCE框架,对于理解大数据处理原理和实践具有重要意义。