Windows单节点Hadoop示例应用挂起问题求助
我之前在Windows单节点Hadoop上也碰到过一模一样的问题!这个卡在YARN ACCEPTED状态、等不到AM容器的情况,大多是资源配置不合理或者Windows环境的小坑导致的,给你几个实用的排查和解决方向:
1. 先检查YARN的资源配置是否匹配你的机器
Windows单节点的内存通常不会特别大,Hadoop默认的资源配置可能要么给得太足(超过机器实际内存),要么给得不够,导致容器分配失败:
- 打开
$HADOOP_HOME/etc/hadoop/yarn-site.xml,调整以下参数:yarn.nodemanager.resource.memory-mb:设置成机器可用内存的一半左右,比如8G内存就设成4096yarn.scheduler.maximum-allocation-mb:和上面的值保持一致yarn.nodemanager.vmem-pmem-ratio:Windows上虚拟内存容易出问题,改成2或者1.5(默认是2.1)
- 再打开
mapred-site.xml,调整MapReduce任务的内存:mapreduce.map.memory.mb:设成1024mapreduce.reduce.memory.mb:设成1024mapreduce.application.am.resource.mb:设成1024(这个值必须小于上面的yarn.scheduler.maximum-allocation-mb)
2. 确认NodeManager进程正常运行
- 打开命令行输入
jps,看看列表里有没有NodeManager进程。如果没有,手动启动它:yarn nodemanager - 去Hadoop的
logs目录下找yarn-*-nodemanager-*.log日志文件,看看有没有报错——比如端口被占用、临时目录权限不足这类问题,日志里会写得很清楚。 - 另外,Windows防火墙可能会拦截YARN组件之间的通信,暂时关闭防火墙或者把Hadoop的相关端口(比如8030、8032、8042这些)加入白名单试试。
3. 检查Hadoop临时目录的权限
Windows上的权限问题很容易被忽略:
- 打开
core-site.xml,找到hadoop.tmp.dir配置的路径,默认可能是C盘的某个临时目录,建议改成你自己创建的目录(比如D:\hadoop\tmp) - 确保这个目录的读写权限是当前用户完全控制的——右键目录→属性→安全→编辑,给当前用户加上所有权限
- 改完之后,记得重新格式化NameNode:
然后重启所有Hadoop服务。hdfs namenode -format
4. 查看YARN Web UI的详细日志
- 打开YARN的Web UI(默认是
http://localhost:8088),找到你卡住的那个应用,点击进去后看“Logs”选项,查看Application Master的尝试日志。这里面会有最直接的错误信息——比如是不是Java路径配置错了、某个依赖库找不到,或者容器启动时的权限问题。
按照这些步骤一步步排查,我当时就是调整了内存配置和临时目录权限就解决了问题,你可以试试看!
内容的提问来源于stack exchange,提问作者Dims
相关产品推荐
相关产品推荐

