Windows下运行Hadoop WordCount报错:'/tmp/hadoop-Arif'无法识别
解决Windows下Hadoop运行WordCount时报错'/tmp/hadoop-Arif'的问题
问题本质
这个错误是因为Windows系统无法识别Unix风格的路径(如/tmp/hadoop-Arif),Hadoop在Windows环境下运行时,部分默认脚本会沿用Unix路径格式,导致CMD无法解析执行。
具体解决方案
1. 重置Hadoop临时目录为Windows格式路径
打开HADOOP_HOME\etc\hadoop\core-site.xml,修改hadoop.tmp.dir配置项,替换为Windows本地路径(先手动在Hadoop目录下创建好temp文件夹):
<property> <name>hadoop.tmp.dir</name> <value>C:\hadoop-2.8.0\temp</value> <description>Base directory for temporary Hadoop files</description> </property>
修改完成后,重启Hadoop服务:先执行stop-all.cmd,再执行start-all.cmd。
2. 修正hadoop-env.cmd中的路径配置
打开HADOOP_HOME\etc\hadoop\hadoop-env.cmd,做以下检查:
- 确保
JAVA_HOME使用无空格的短路径格式,比如把set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_xxx改成set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_xxx - 排查所有配置项,把Unix风格路径全部替换为Windows格式。
3. 调整WordCount命令及HDFS路径
- 先确认HDFS中已存在
/inputdir目录,且输入文件已上传:
hadoop fs -put C:\你的本地输入文件路径\input_file.txt /inputdir/
- Hadoop要求输出目录必须不存在,每次运行前先删除旧输出目录:
hadoop fs -rm -r /output
- 执行WordCount命令时,可去掉路径引号(避免CMD解析问题):
hadoop jar C:\hadoop-2.8.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.8.0.jar wordcount /inputdir/input_file.txt /output
4. 确认环境变量配置
检查系统PATH变量是否包含HADOOP_HOME\bin和HADOOP_HOME\sbin,若未添加,补充后重启CMD窗口再执行命令。
内容的提问来源于stack exchange,提问作者Umer Arif
相关产品推荐
相关产品推荐

