文章目录
一、实战概述
-
本实战演练旨在利用Hadoop MapReduce框架在虚拟环境中执行一个简单的词频统计任务。首先,在master节点上创建了一个包含多个单词行的文本文件
words.txt
,并将该文件上传至HDFS中的指定目录/wordcount/input
。 -
在集成开发环境IntelliJ IDEA中,我们创建了一个名为
MRWordCount
的Maven项目,并引入了Apache Hadoop 3.3.4版本的客户端依赖和JUnit测试框架。为了便于日志管理,添加了log4j.properties配置文件来定义日志输出格式及位置。 -
接下来,实现了两个关键类:
WordCountMapper
和WordCountReducer
。WordCountMapper
继承自Mapper接口,负责读取输入文本文件中的每一行内容,将每行按空格分割成单词,并为每个单词生成一个键值对(<单词, 1>),以便后续计数处理。而WordCountReducer
则继承自Reducer接口,它接收Mapper阶段产生的所有相同单词的键及其对应的次数,进行合并统计并输出格式化的"(单词, 出现次数)"键值对。 -
最后,通过
WordCountDriver
驱动类完成整个MapReduce作业的设置与执行。此类初始化Hadoop Configuration对象、设置Job参