【问题标题】:Namenode stuck in SAFEMODE after cluster restart集群重启后Namenode卡在SAFEMODE
【发布时间】:2017-07-20 06:03:55
【问题描述】:

我有一个 3 节点 Hadoop 集群Apache Hadoop-2.8.0)。我已经部署了 2 个使用 QJM 配置为 HA 模式的名称节点。在安装了namenode的同一台机器上配置了2个datanode。第三个节点仅用于仲裁目的。

Setup  
Node1 { nn1, dn1, jn1, zkfc1, zkServer1 }  
Node2 -> {nn2, dn2, jn2, zkfc2, zkServer2}  
Node3 -> {jn3,  zkServer3}

我出于某种原因停止了集群(电源回收了服务器),因为它们我无法成功启动集群。检查日志后,我发现名称节点处于安全模式,并且它们都无法将块加载到内存中。下面是来自 namenode UI 的 namenode 的状态。

安全模式已开启。报告的块 0 需要额外的 6132675 个块 达到阈值 0.9990 的总块数为 6138814。 live datanodes 0 已达到最小数量 0。安全模式将是 达到阈值后自动关闭。 61,56,984 个文件和目录,61,38,814 个块 = 1,22,95,798 个 文件系统对象。堆内存使用 5.6 GB 的 7.12 GB 堆内存。 最大堆内存为 13.33 GB。使用的非堆内存 45.19 MB 的 49.75 MB 已提交的非堆内存。最大非堆内存为 130 MB。

名称节点日志中有许多 JVM 暂停 消息,因此我尝试增加 HADOOP_HEAPSIZE,增加 HADOOP_NAMENODE_OPTS 中的堆大小,但没有成功。

需要帮助..

【问题讨论】:

  • 你试过这个命令吗:- hadoop dfsadmin -safemode leave ?
  • 我试过这个。在强行离开安全模式后,所有块都被namenode标记为损坏。但是所有这些块都很好。

标签: java apache hadoop hdfs high-availability


【解决方案1】:

在得到 hadoop 用户邮件列表的回复后,我已经解决了这个问题。 问题是由于数据节点没有生成块报告。我检查了日志,发现数据节点抱怨 ipc.maximum.data.length 小于要求。

我在 core-site.xml 文件中添加了以下属性来解决对我有用的问题。

<property>
     <name>ipc.maximum.data.length</name>
     <value>101372499</value>
 </property>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2018-11-23
    • 2020-07-03
    • 2020-01-08
    • 1970-01-01
    相关资源
    最近更新 更多