YARN集群无法识别活跃NodeManagers及作业页面无法访问求助
问题描述
我尝试基于Hive和Hadoop运行应用程序,但遇到以下问题:
- YARN集群无法识别任何活跃的NodeManagers,执行
yarn node -list命令输出如下:
anushkakundu@AnushkaHP14:/opt/hadoop/bin$ /opt/hadoop/bin/yarn node -list 2024-05-23 17:07:47,933 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032 Total Nodes:0 Node-Id Node-State Node-Http-Address Number-of-Running-Containers
- 终端给出的作业跟踪URL
http://AnushkaHP14:8088/proxy/application_1716465092573_0001/无法访问,提示“This site can’t be reached”。
已执行的操作:
- 通过jps验证已启动Hadoop,且Hive的metastore和hiveserver2均处于活跃状态;
- 修改yarn-site.xml配置以分配合适资源;
- 重启所有服务。
解决建议
1. 确认NodeManager进程状态
单独检查NodeManager是否真的在运行:
- 执行
jps命令,查看输出中是否包含NodeManager进程; - 若未找到,手动启动NodeManager:
$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager; - 启动完成后重新执行
yarn node -list验证节点状态。
2. 排查NodeManager启动失败原因
如果NodeManager无法启动,直接查看日志定位问题:
- 日志路径通常为
$HADOOP_HOME/logs/yarn-<username>-nodemanager-<hostname>.log; - 常见故障点:
- 端口冲突:用
netstat -tulpn | grep <端口号>检查yarn-site.xml中yarn.nodemanager.address、yarn.nodemanager.webapp.address等配置的端口是否被占用; - 资源不足:确认机器内存、CPU是否满足
yarn.nodemanager.resource.memory-mb、yarn.nodemanager.resource.cpu-vcores的配置要求,若资源不够,调低配置值后重启服务; - 权限问题:检查
hadoop.tmp.dir指定的临时目录等Hadoop相关路径的读写权限,确保NodeManager进程用户拥有访问权限。
- 端口冲突:用
3. 修正ResourceManager的绑定配置
从命令输出看ResourceManager绑定到0.0.0.0:8032,需确保主机名解析与配置一致:
- 修改
yarn-site.xml中的相关配置,将0.0.0.0替换为实际主机名或IP:<property> <name>yarn.resourcemanager.address</name> <value>AnushkaHP14:8032</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>AnushkaHP14:8088</value> </property> - 重启ResourceManager:
$HADOOP_HOME/sbin/yarn-daemon.sh restart resourcemanager; - 验证主机名解析:执行
ping AnushkaHP14,若无法解析,修改/etc/hosts文件添加本机IP AnushkaHP14的映射。
4. 检查YARN应用状态
作业URL无法访问可能是应用未正常启动或已终止:
- 执行
yarn application -list查看当前运行的应用列表,确认application_1716465092573_0001是否存在; - 若应用已结束,查看应用日志排查原因:
yarn logs -applicationId application_1716465092573_0001; - 若应用未启动,检查Hive提交作业的配置,确保Hive正确关联YARN集群。
内容的提问来源于stack exchange,提问作者Anushka
相关产品推荐
相关产品推荐

