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

求助:Hadoop集群上WordCount应用无法正常运行

Hadoop Streaming WordCount任务停滞(进度0)排查方案

基础配置与路径问题核对

  • 输入输出路径类型检查:命令里的-input /main/data.txt和-output /main/output是HDFS路径,而非本地路径。先执行hdfs dfs -ls /main确认data.txt存在,且output路径不存在(Hadoop不允许输出路径提前存在,若输入路径不存在,任务会持续等待)。如果是本地文件,先上传到HDFS:hdfs dfs -put /本地路径/data.txt /main/。
  • 脚本权限与节点同步:确保mapper.py和reducer.py在集群所有节点的/home/hdoop/目录下都存在,且有执行权限。执行chmod +x /home/hdoop/mapper.py /home/hdoop/reducer.py给脚本加权限,同时脚本第一行必须指定解释器,比如#!/usr/bin/env python3(根据实际Python版本调整),否则Task节点无法执行脚本。

集群资源状态检查

  • 访问http://localhost:8088/cluster/nodes查看NodeManager节点状态,确认有处于RUNNING状态的节点,且节点有可用的内存、CPU资源。若所有节点不可用,任务无法分配容器,会一直停滞。
  • 查看任务日志:在8088的应用详情里找到对应Task(如Mapper任务),点击日志链接查看具体错误——脚本找不到、权限不足、Python环境缺失等问题都会在日志中体现,这是最直接的排查方式。

脚本适配Hadoop环境验证

  • 本地运行脚本时可能直接读文件,但Hadoop Streaming通过标准输入输出传递数据,确保脚本从sys.stdin读取输入,而非硬编码本地文件路径。比如mapper.py核心逻辑应为:
import sys
for line in sys.stdin:
    line = line.strip()
    words = line.split()
    for word in words:
        print(f"{word}\t1")
  • 确认集群节点安装对应Python环境:执行ssh 节点IP python3 --version,确保所有Task节点都有匹配的Python环境,且路径与脚本头指定的一致。

其他潜在问题排查

  • 网络与防火墙:确保集群节点间通信正常(9000、8088、8042等端口开放),NameNode和ResourceManager能与NodeManager正常通信。
  • HDFS权限:执行hdfs dfs -chmod 755 /main确保输入路径有读权限,执行用户具备HDFS操作权限。

内容的提问来源于stack exchange,提问作者Muhammad Shamil Umar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:31:01