【问题标题】:YARN Application Master unable to connect to Resource ManagerYARN Application Master 无法连接到资源管理器
【发布时间】:2014-11-04 10:46:06
【问题描述】:

我有一个 4 节点集群(1 个名称节点/资源管理器 3 个数据节点/节点管理器)

我正在尝试运行一个简单的 tez 示例orderedWordCount

hadoop jar C:\HDP\tez-0.4.0.2.1.1.0-1621\tez-mapreduce-examples-0.4.0.2.1.1.0-1621.jar orderedwordcount sample/test.txt /sample/out

作业被接受,应用程序主机和容器得到设置,但在节点管理器上我看到了这些日志

2014-09-10 17:53:31,982 信息 [ServiceThread:org.apache.tez.dag.app.rm.TaskSchedulerEventHandler] org.apache.hadoop.yarn.client.RMProxy:连接到 ResourceManager 在 /0.0.0.0:8030

2014-09-10 17:53:34,060 信息 [ServiceThread:org.apache.tez.dag.app.rm.TaskSchedulerEventHandler] org.apache.hadoop.ipc.Client:重试连接到服务器: 0.0.0.0/0.0.0.0:8030。已尝试 0 次;重试策略为 RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 毫秒)

在可配置的超时后作业失败

我搜索了这个问题,它总是指向 yarn.resourcemanager.scheduler.address 配置。在我所有的资源管理器节点和节点管理器中,我都正确定义了这个配置,但由于某种原因它没有被拾取

<property>
<name>yarn.resourcemanager.hostname</name>
<value>10.234.225.69</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>

【问题讨论】:

    标签: hadoop hadoop-yarn


    【解决方案1】:

    您的 ResourceManager 可能正在侦听 IPv6 端口,而您的工作节点(即 NodeManager)可能正在使用 IPv4 连接到 ResourceManager

    要快速检查是否是这种情况,请执行以下操作

    netstat -aln | grep 8030
    

    如果您得到类似于:::8030 的内容,那么您的 ResourceManager 确实在侦听 IPv6 端口。如果它是 IPv4 端口,您应该会看到类似于 0.0.0.0:8030

    的内容

    要解决此问题,您可能需要考虑在所有计算机上禁用 IPv6,然后再试一次。

    【讨论】:

      【解决方案2】:

      Hadoop2 代码配置 yarn.resourcemanager.scheduler.address 存在问题,例如:

      <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>qadoop-nn001.apsalar.com:8030</value>
      </property>
      

      它目前没有正确放置在“conf”配置中 hadoop-2.7.0/src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/RMProxy.java

      为了证明这个问题,我们修补了该文件以直接注入我们的调度程序地址。 下面的补丁是一个hack。根本原因在于需要加载 属性“yarn.resourcemanager.scheduler.address”。

          @Private
      protected static <T> T createRMProxy(final Configuration configuration, final Class<T> protocol, RMProxy instance) throws IOException {
          YarnConfiguration conf = (configuration instanceof YarnConfiguration)
              ? (YarnConfiguration) configuration
              : new YarnConfiguration(configuration);
          LOG.info("LEE: changing the conf to include yarn.resourcemanager.scheduler.address at 10.1.26.1");
          conf.set("yarn.resourcemanager.scheduler.address", "10.1.26.1");
          RetryPolicy retryPolicy = createRetryPolicy(conf);
          if (HAUtil.isHAEnabled(conf)) {
            RMFailoverProxyProvider<T> provider =
                instance.createRMFailoverProxyProvider(conf, protocol);
            return (T) RetryProxy.create(protocol, provider, retryPolicy);
          } else {
            InetSocketAddress rmAddress = instance.getRMAddress(conf, protocol);
            LOG.info("LEE: Connecting to ResourceManager at " + rmAddress);
            T proxy = RMProxy.<T>getProxy(conf, protocol, rmAddress);
            return (T) RetryProxy.create(protocol, proxy, retryPolicy);
          }   
      } 
      

      编辑:我们通过将 yarn-site.xml 添加到 CLASSPATH 来解决这个问题。 无需修改 RMProxy.java

      【讨论】:

      • 请您解释一下如何将 XML 文件添加到 CLASSPATH 中?我现在正面临 Yarn 的这个问题
      【解决方案3】:

      这是因为您的资源管理器无法访问。尝试从其他节点 ping 您的资源管理器,看看它是否有效。在集群中保持这些配置一致。

      【讨论】:

        猜你喜欢
        • 2014-01-04
        • 2016-10-31
        • 2019-05-05
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多