
MapReduce程序(一)——wordCount
在Eclipse中创建名为 在项目属性的 新增 在Eclipse中选择文件,右键单击并导出为JAR文件,选择 打包完成后,会在指定路径生成 打开终端,进入 执行以下命令启动HDFS服务: 检查是否启动成功,执行 创建HDFS上的输入和输出文件夹: 将本地文件上传到HDFS: 创建工作目录: 将 运行JAR文件: 检查输出文件: 查看具体内容:
发布日期:2025-04-12 00:11:17
浏览次数:9
分类:精选文章
本文共 3763 字,大约阅读时间需要 12 分钟。
Hadoop MapReduce WordCount程序开发与运行
本文将详细介绍基于Hadoop MapReduce的WordCount程序的开发与运行过程,包括程序设计、打包运行以及在Hadoop集群上运行的实际操作步骤。
1. MapReduce之WordCount的计算模型
1.1 WordCount的Map过程
在MapReduce的WordCount程序中,Map阶段的主要任务是将输入的文本文件按行分割,并将每行文本拆分成单词。具体来说,TokenizerMapper
类通过StringTokenizer
将每行文本按空格或其他分隔符分割成单词,并将每个单词及其计数(默认为1)作为Map任务的输出。
此外,Map任务会对输出的键值对进行排序,并执行Combine过程,将相同单词的计数值累加。这样可以确保Combine任务能够接收到有序且连续的键值对,从而提高效率。
1.2 WordCount的Reduce过程
Reduce阶段的主要任务是对Map阶段输出的有序键值对进行处理。IntSumReducer
类会接收所有以相同单词为键的计数值,并将它们相加,得到该单词在整个文本中的总出现次数。
Reduce任务的输出即为最终的WordCount结果,键为单词,值为单词出现的总次数。
2. 打包运行WordCount程序
2.1 下载所需的驱动包
为了能够运行WordCount程序,需要下载并添加以下Hadoop相关的JAR包:
hadoop-common-2.6.0.jar
hadoop-mapreduce-client-core-2.6.0.jar
hadoop-test-1.2.1.jar
2.2 创建新的工程
WordCount
的Java项目。Java Build Path
中添加上述下载的JAR包。WordCount.java
源文件,包含以下内容:import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;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.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class WordCount { public static class TokenizerMapper extends Mapper
2.3 打包源文件
WordCount
项目作为导出的基础,设置输出路径和文件名。WordCount.jar
文件。2.4 启动HDFS服务
/usr/local/Cellar/hadoop/2.6.0/sbin
目录。start-dfs.sh
jps
查看进程。2.5 将文件上传到HDFS
hdfs dfs -mkdir /userhdfs dfs -mkdir /user/input
hdfs dfs -put /Users/你的路径/test*.html /user/input
2.6 运行JAR文件
mkdir WorkSpace
WordCount.jar
复制到工作目录: cp /你的路径/WordCount.jar ./WorkSpace
hadoop jar WorkSpace/WordCount.jar WordCount /user/input /user/output
3. 查看运行结果
hdfs dfs -ls /user/output
hdfs dfs -cat /user/output/part-r-00000
4. 常见问题
- 如果程序运行失败,需检查日志文件:
hadoop job -debug
- 确保输入文件格式正确,且HDFS集群运行正常。
5. 参考文献
- [1] CSDN博客:MapReduce之WordCount
- [2] Andrew Liu:MapReduce WordCount
- [3] Mac下Hadoop配置及Eclipse编程
发表评论
最新留言
不错!
[***.144.177.141]2025年05月11日 23时07分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Log4j 被曝核弹级漏洞,开发者炸锅了
2025-04-11
Log4j.xml和Log4j2.xml的简单认识 - log4j2/log4j的区别
2025-04-11
Log4j2 中format增加自定义的参数
2025-04-11
Log4j2 消停了,Logback 开始塌房了?
2025-04-11
log4j分离日志输出 自定义过滤 自定义日志文件
2025-04-11
Log4j日志级别
2025-04-11
log4j框架搭建
2025-04-11
Log4J的配置
2025-04-11
log4j的配置说明
2025-04-11
log4j补充
2025-04-11
Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合
2025-04-11
Logback configuration error detected:D:\log\exchange-platform\info.2021-07-27.log (系统找不到指定的路径。)
2025-04-11
logback.xml 配置详解(1)
2025-04-11
logback.xml配置
2025-04-11
logback.xml配置导入spring无法启动:ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while par
2025-04-11
logback的使用和logback.xml详解
2025-04-11
logback配置文件详解
2025-04-11
Logback配置输出sql
2025-04-11
logger4j 日志配置内,各种符号详解
2025-04-11