【发布时间】: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