2

我正在运行一个 CDH4.1.2 安全集群,它在单个 namenode+secondarynamenode 配置下运行良好,但是当我尝试从 Cloudera Manager 界面启用高可用性(基于仲裁)时,它在 16 步中的第 10 步死机,“启动 NameNode这将转换为活动模式 namenode ([my namenode's hostname])"。

深入研究角色日志文件会出现以下致命错误:

Exception in namenode joinjava.lang.IllegalArgumentException: Does not contain a valid host:port authority: [my namenode's fqhn]:[my namenode's fqhn]:0 at
org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:206) at
org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:158) at
org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:147) at
org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:143) at
org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:547) at
org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:480) at
org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:443) at
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:608) at
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:589) at
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1140) at
org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1204)

我该如何解决这个问题?

4

1 回答 1

0

看起来你有两个问题:

  1. NameNode 的 IP 地址解析为“我的 namenode 的 fqhn”,而不是常规主机名。检查您的 /etc/hosts 文件以解决此问题。
  2. 您需要配置 dfs.https.port。使用 Cloudera Manager 免费版,您必须必须将适当的配置添加到安全阀以启用安全性。作为其中的一部分,您需要配置 dfs.https.port。

鉴于即使在非 HA 模式下也会遍历此代码路径,我很惊讶您能够在启用 HA 之前让您的安全 NameNode 正确启动。如果您还没有,我建议您首先启用安全性,测试所有 HDFS 角色是否正确启动,然后启用 HA。

于 2013-03-16T07:50:03.263 回答