Hadoop-MapReduce之WordCount的实现

本文介绍了使用MapReduce实现WordCount的基本原理与步骤。详细解释了如何通过map和reduce两个阶段来统计文本文件中单词出现的频率,并记录了一个常见的配置错误及其解决方法。

代码片段: longsl / Mapreduce的wordcount计数器实现

这里对wordcount程序做一些补充笔记

wordcount计数逻辑简单概述:

  • 从文件夹中读取文本文件,即源数据
  • 计数分为map阶段和reduce两阶段实现,map阶段将单词做分割,并将每个单词打上标记—><key:word,value:1>的形式.
  • 在reduce阶段,将key值相同的word做一个合并,key:hello, values:{1,1,1,1,1,1.....}并统计values中1的总数,经过循环遍历所所有的key,得到各个字母的计数。
  • 最后输出到文件中

bug笔记
当目标hdfs地址不是配置文件中设置的地址时,

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop:9000/</value>
</property>

会报以下异常:

Exception in thread "main" java.net.ConnectException: Call From elon/192.168.16.1 to hadoop:9001 failed on connection exception: java.net.ConnectException: Connection refused: no further information;
执行`hadoop jar`命令时提示`Not a valid JAR`错误,通常是由于JAR文件路径错误、JAR文件损坏或文件权限问题导致的。以下是一些可能的解决办法: ### 检查JAR文件路径 确保JAR文件的路径是正确的,包括文件名和版本号。在你给出的错误信息中,路径为`/develop/server/hadoop-2.7.6/hadoop-mapreduce-examples-2.7.6.jar`,需要确认该文件确实存在于这个位置。可以使用以下命令检查文件是否存在: ```bash ls /develop/server/hadoop-2.7.6/hadoop-mapreduce-examples-2.7.6.jar ``` 如果文件不存在,需要确认文件的实际位置,或者重新下载该JAR文件。参考正确的命令示例,如`hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /root/input/data.txt ~/output/wc1130`,这里仅指定了JAR文件名,前提是该文件在当前工作目录下[^2]。 ### 检查JAR文件是否损坏 可以尝试重新下载`hadoop-mapreduce-examples-2.7.6.jar`文件,以确保文件没有损坏。下载完成后,再次执行`hadoop jar`命令。 ### 检查文件权限 确保你有足够的权限访问该JAR文件。可以使用以下命令检查文件权限: ```bash ls -l /develop/server/hadoop-2.7.6/hadoop-mapreduce-examples-2.7.6.jar ``` 如果权限不足,可以使用以下命令修改文件权限: ```bash chmod +r /develop/server/hadoop-2.7.6/hadoop-mapreduce-examples-2.7.6.jar ``` ### 示例命令 假设文件路径正确且文件未损坏,权限也正常,可以使用以下命令运行WordCount程序: ```bash hadoop jar /develop/server/hadoop-2.7.6/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output ``` 这里`/input`是输入目录,`/output`是输出目录,输出目录在执行前不应该存在,因为Hadoop会创建它[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值