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

Hadoop 2.7.5 Yarn HA单节点启动时ResourceManager无响应问题排查

这大概率是配置错误,而非Hadoop Bug

先直接给结论:你的ResourceManager(RM)没有正确适配HDFS的HA架构,而是硬编码了单个NameNode的地址,导致单节点启动时陷入无效重试循环。

问题根源拆解

从你提供的日志能明确看到,RM一直在尝试连接192.168.1.210:8020这个未启动的节点——这说明RM根本不知道要通过HDFS HA的Nameservice去自动发现活跃的NameNode,而是死盯着某个固定的NN地址。而NameNode本身能正常启动,是因为它依赖ZKFC的HA机制,可以独立找到自身的角色(主/备)。

你调整的yarn.resourcemanager.fs.state-store.retry-policy-spec之所以没用,是因为这个配置只控制RM对状态存储的重试次数和间隔,但它解决不了「RM不知道要切换到另一个NN」的核心问题——它只会重复连同一个不可达的地址,自然无济于事。

关键配置检查与修正

你需要确保所有相关配置都指向HDFS HA的Nameservice ID,而非单个NN地址:

  1. core-site.xml 配置
    确认fs.defaultFS指向你的HA集群名称(比如mycluster),不是具体的NN地址:

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value> <!-- 替换成你的nameservice名称 -->
    </property>
    
  2. hdfs-site.xml 配置
    确保HA相关参数完整且正确:

    <!-- 定义nameservice -->
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <!-- 定义该nameservice下的两个NN节点 -->
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2</value>
    </property>
    <!-- 每个NN的RPC地址 -->
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn1</name>
        <value>nodeA:8020</value> <!-- 节点A的地址 -->
    </property>
    <property>
        <name>dfs.namenode.rpc-address.mycluster.nn2</name>
        <value>nodeB:8020</value> <!-- 节点B的地址 -->
    </property>
    <!-- 指定故障转移代理类 -->
    <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    
  3. yarn-site.xml 配置
    确保RM的状态存储配置也使用Nameservice(如果单独指定了的话),比如:

    <property>
        <name>yarn.resourcemanager.fs.state-store.uri</name>
        <value>/rmstore</value> <!-- 路径基于fs.defaultFS的配置,无需写死NN地址 -->
    </property>
    

验证步骤

  • 修改完所有配置后,分发到集群所有节点
  • 重启ResourceManager服务
  • 单独启动节点B,查看RM日志,确认它不再尝试连接192.168.1.210:8020,而是通过Nameservice去发现活跃的NameNode

如果所有配置都正确,RM应该能自动适配单节点场景,不会再陷入无响应状态。极少数情况下,若配置完全正确但问题依然存在,才需要考虑特定Hadoop版本的Bug(比如早期HA实现的疏漏),但这种情况非常罕见。

内容的提问来源于stack exchange,提问作者Soheil Pourbafrani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:32:08