Windows环境下Hadoop Streaming命令执行失败问题求助
问题描述
在Windows系统执行Hadoop Streaming命令时出错,执行命令如下:
C:\hadoop-3.3.0\Lab2>hadoop jar "C:/hadoop-3.3.0/share/hadoop/tools/lib/hadoop-streaming-3.3.0.jar" ^ -file mapper.py -mapper mapper.py ^ -file reducer.py -reducer reducer.py ^ -input /user/Win10/data/Cau1.txt ^ -output /user/Win10/data/Cau1-output.txt
返回错误信息:
2023-07-02 20:43:22,867 WARN streaming.StreamJob: -file option is deprecated, please use generic option -files instead. File: file:/C:/hadoop-3.3.0/Lab2/mapper.py is not readable. Try -help for more information Streaming Command Failed!
解决方案
1. 修复文件不可读问题
- 校验文件路径:确认
mapper.py和reducer.py确实位于C:\hadoop-3.3.0\Lab2目录下,检查文件名拼写是否准确(Windows路径大小写不敏感,但文件名需完全匹配)。 - 检查文件权限:右键文件→属性→安全,确保当前登录用户拥有文件读取权限,若没有则添加对应权限。
- 验证文件完整性:打开文件确认内容正常,无损坏或被其他程序占用的情况。
2. 替换过时参数
官方提示-file参数已废弃,改用-files参数(多文件用逗号分隔),修改后的命令如下:
C:\hadoop-3.3.0\Lab2>hadoop jar "C:/hadoop-3.3.0/share/hadoop/tools/lib/hadoop-streaming-3.3.0.jar" ^ -files mapper.py,reducer.py ^ -mapper mapper.py ^ -reducer reducer.py ^ -input /user/Win10/data/Cau1.txt ^ -output /user/Win10/data/Cau1-output.txt
额外注意事项
- 确认Hadoop集群正常运行:执行
jps命令检查NameNode、DataNode等核心进程是否启动。 - 校验HDFS输入路径:通过
hdfs dfs -ls /user/Win10/data/确认Cau1.txt存在于HDFS对应路径。 - 清理输出路径:Hadoop要求输出路径必须不存在,若之前执行过命令,先运行
hdfs dfs -rm -r /user/Win10/data/Cau1-output.txt删除已有路径。
内容的提问来源于stack exchange,提问作者Bình Lê
相关产品推荐
相关产品推荐

