You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hadoop 3.3.0 WordCount程序执行后无法在HDFS生成输出文件夹求助

Hadoop 3.3.0 WordCount程序执行后无法在HDFS生成输出文件夹求助

你好,我梳理了你的操作流程和遇到的问题,咱们一步步来排查可能的原因:

你的环境与已完成操作

  • 运行环境:Windows10 + Hadoop 3.3.0 + JDK 1.8
  • 已完成的步骤:
    1. 创建本地文件data.txt,通过命令上传至HDFS的/input目录,且在Namenode管理页面(http://localhost:9870/)确认文件已存在
    2. 执行WordCount任务命令:
      hadoop jar "C:\hadoop-3.3.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-3.3.0.jar" wordcount /input/data.txt /output
      
    3. 遇到的问题:执行命令后,Namenode页面始终看不到/output文件夹,任务未生成预期输出

排查步骤与解决方案

一、优先查看控制台(Img4)的日志报错

这是定位问题最直接的方式,Hadoop的任务日志会把细节都写出来:

  • 如果提示Output directory already exists:
    Hadoop默认不允许覆盖已存在的输出目录,需要先删除旧目录再重试:
    hdfs dfs -rm -r /output
    
  • 如果提示Permission denied:
    Windows下Hadoop的权限配置容易出问题,可以临时关闭权限检查:
    修改hadoop-3.3.0/etc/hadoop/hdfs-site.xml,添加或修改以下配置:
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    
    保存后重启Hadoop集群,再重新执行任务命令。
  • 如果提示FileNotFoundException:
    虽然你在页面看到了文件,但可能路径解析有问题,先通过命令验证HDFS里的文件是否存在:
    hdfs dfs -ls /input
    
    如果返回结果里没有data.txt,重新执行上传命令(建议去掉路径的引号,避免解析异常):
    hdfs dfs -put D:\PhanTichDuLieu\data.txt /input
    

二、检查Hadoop集群的运行状态

任务执行依赖所有核心进程正常运行,在cmd里执行:

jps

正常情况下应该看到这些进程:NameNode、DataNode、ResourceManager、NodeManager、Jps
如果有进程缺失(比如DataNode没启动),去hadoop-3.3.0/logs目录查看对应进程的日志文件,排查启动失败原因。

三、直接通过命令验证输出目录是否存在

有时候Namenode页面可能因为缓存没刷新看不到目录,先通过命令确认:

hdfs dfs -ls /

如果能看到/output,说明目录已经生成,只是页面没刷新——清空浏览器缓存或重启Namenode服务后再查看;如果看不到,回到第一步重点分析日志报错。

四、Windows下Hadoop的特殊注意事项

Windows运行Hadoop经常有兼容性问题,你可以检查这几点:

  • 确认HADOOP_HOME环境变量已正确配置,且PATH里添加了%HADOOP_HOME%\bin和%HADOOP_HOME%\sbin
  • 确认你已经替换了对应版本的Windows原生库(winutils.exe等文件),缺失这些文件会导致MapReduce任务无法正常执行
  • 尝试用管理员权限打开cmd执行任务命令,避免权限不足的问题

备注:内容来源于stack exchange,提问作者Thanh Thao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:55:29