我有一个3节点hadoop集群(apachehadoop-2.8.0)的设置。我已经部署了2个namenodes,它们是使用qjm在ha模式下配置的。在安装namenode的同一台计算机上配置了2个datanode。第三个节点仅用于仲裁目的。
Setup
Node1 { nn1, dn1, jn1, zkfc1, zkServer1 }
Node2 -> {nn2, dn2, jn2, zkfc2, zkServer2}
Node3 -> {jn3, zkServer3}
我出于某种原因停止了集群(电源回收了服务器),但由于它们,我无法成功启动集群。在检查日志之后,我发现namenodes处于安全模式,没有一个能够在内存中加载块。下面是namenode ui中namenode的状态。
安全模式开启。报告的块0需要额外的6132675块,以达到总块6138814的阈值0.9990。活动数据节点0的数目已达到最小数目0。一旦达到阈值,安全模式将自动关闭。61,56984个文件和目录,61,38814个块=1,22,95798个文件系统对象总数。堆内存使用了5.6 gb的7.12 gb堆内存。最大堆内存为13.33 gb。非堆内存使用了49.75 mb提交的非堆内存中的45.19 mb。最大非堆内存为130 mb。
名称节点日志中有许多jvm暂停消息,因此我尝试增加hadoop\u堆大小,在hadoop\u namenode\u opts中增加堆大小,但没有成功。
需要帮助。。
1条答案
按热度按时间ogsagwnx1#
在得到hadoop用户邮件列表的回复后,我已经解决了这个问题。此问题是由于datanodes未生成阻止报告造成的。我检查了日志,发现datanode抱怨ipc.maximum.data.length小于要求的长度。
我在core-site.xml文件中添加了以下属性,以解决对我有效的问题。