场景回顾:

测试集群节点分配:35,36是namenode且开启HA,37,38,39即作为datanode,又作为journalnode。

某时间 38节点磁盘爆满,集群中hdfs及依赖的服务全部宕掉。

之后虽然将38节点清除一部分多余数据,但集群服务仍然不正常:namenode启动的时候两个都是standby,几分钟后自动关闭;datanode正常;journal正常;zkfc正常

调查过程:

查看namenode日志,显示一直在尝试连接journal,并显示

2017-08-14 17:03:58,669 WARN  client.QuorumJournalManager (QuorumCall.java:waitFor(134)) - Waited 88071 ms (timeout=90000 ms) for a response for selectInputStreams. Succeeded so far: [192.168.0.37:8485]
2017-08-14 17:03:59,670 WARN client.QuorumJournalManager (QuorumCall.java:waitFor(134)) - Waited 89072 ms (timeout=90000 ms) for a response for selectInputStreams. Succeeded so far: [192.168.0.37:8485]
2017-08-14 17:04:00,600 WARN namenode.FSEditLog (JournalSet.java:selectInputStreams(280)) - Unable to determine input streams from QJM to [192.168.0.37:8485, 192.168.0.38:8485, 192.168.0.39:8485]. Skipping.
java.io.IOException: Timed out waiting 90000ms for a quorum of nodes to respond.
at org.apache.hadoop.hdfs.qjournal.client.AsyncLoggerSet.waitForWriteQuorum(AsyncLoggerSet.java:137)
at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.selectInputStreams(QuorumJournalManager.java:471)
at org.apache.hadoop.hdfs.server.namenode.JournalSet.selectInputStreams(JournalSet.java:278)
at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1528)
at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1552)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:652)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:294)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1015)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:690)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:688)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:752)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:992)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:976)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1686)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1754)

根据这些错误信息,尝试了很多网上的方案都没有起作用。

在启动namenode的时候观察hadoop UI中的Startup Progress

发现

1. Loading edits的步骤没有显示加载edit文件直接显示了100%

2. Safe mode​的awaiting reported blocks加载到98%左右就失败

以上现象,分析可能跟数据完整性有关,datanode中的数据丢失不会导致namenode启动问题。那就只剩下namenode中的元数据了。

去37,38,39节点 分别进入journal元数据目录,发现38节点的edit文件比其他俩节点少。

将37节点中的edit文件覆盖到38中,重启namenode,问题解决​

因磁盘爆满而导致NameNode HA无法启动的更多相关文章

  1. docker引起服务器磁盘爆满

    服务器异常 又是开开心心打开我心爱的服务器一天: 吔!这是嘛啊?我的服务器域名访问不了了,一直转圈圈超时了,好,打开ssh远程看看,吔!!!还是访问不了,宕机了?怀着一颗憋大便的心情打开了阿里云控制面 ...

  2. centos更换损坏硬盘uuid改变导致系统不能正常启动处理

    1.因为挂载磁盘uuid错误导致,而系统在启动的时候,会读取fstab文件.来加载预设的硬盘到指定的分区目录,但读取到需要挂载的UUID的磁盘不存在,中断文件的读取,然后提示文件系统错误,不能解析UU ...

  3. 因磁盘空间不足导致HDFS的NameNode进入安全模式问题记录

    因磁盘空间不足导致HDFS的NameNode进入安全模式问题记录,调用API上传及下载文件时报如下错误信息: org.apache.hadoop.ipc.RemoteException(org.apa ...

  4. hadoop2—namenode—HA原理详解

    在hadoop1中NameNode存在一个单点故障问题,也就是说如果NameNode所在的机器发生故障,那么整个集群就将不可用(hadoop1中有个SecorndaryNameNode,但是它并不是N ...

  5. CDH4.1基于Quorum-based Journaling的NameNode HA

    几个星期前, Cloudera发布了CDH 4.1最新的更新版本,这是第一个真正意义上的独立高可用性HDFS NameNode的hadoop版本,不依赖于特殊的硬件或外部软件.这篇文章从开发者的角度来 ...

  6. Hadoop2.0 Namenode HA实现方案

    Hadoop2.0 Namenode HA实现方案介绍及汇总 基于社区最新release的Hadoop2.2.0版本,调研了hadoop HA方面的内容.hadoop2.0主要的新特性(Hadoop2 ...

  7. Hadoop2之NameNode HA详解

    在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNode,但是它并不是NameN ...

  8. Namenode HA原理详解(脑裂)

    转自:http://blog.csdn.net/tantexian/article/details/40109331 Namenode HA原理详解 社区hadoop2.2.0 release版本开始 ...

  9. 安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)

    本节内容: 环境规划 配置集群各节点hosts文件 安装JDK1.7 安装依赖包ssh和rsync 各节点时间同步 安装Zookeeper集群 添加Hadoop运行用户 配置主节点登录自己和其他节点不 ...

随机推荐

  1. [LintCode] 尾部的零

    class Solution { public: // param n : description of n // return: description of return long long tr ...

  2. Less-css扩展多样式

    //扩展Extend Use Method:以在study上扩展多个的样式为例 //Share style 1 .style1{ width:200px; height:15px; color:#ff ...

  3. windows程序查看可以行文件依赖库

    通常在做windows下开发程序,发布的时候需要同时打包一些依赖库:我们可以通过工具直接查看需要发布的程序依赖的程序,这样可以方便快捷的打包程序 这里我们推荐使用:dependencywalker 下 ...

  4. 巨蟒python全栈开发-第19天 核能来袭-反射

    一.今日主要内容 1.isinstance,type,issubclass A.isinstance: 判断你给对象是否是xx类型的. (向上判断) B.type: 返回xxx对象的数据类型 C.is ...

  5. 巨蟒python全栈开发数据库前端4:CSS基础3

    1.float浮动 清除浮动 2.position定位&overflow溢出&z-index属性 3.定位补充 4.导航栏

  6. learnyou 相关网站

    http://learnyouahaskell.com/ http://learnyouahaskell-zh-tw.csie.org/ http://learnyousomeerlang.com/

  7. 四、H5 录制视频 Web Real-Time Communication

    Web Real-Time Communication HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html

  8. Shell下syntax error: operand expected (error token is “-”)

    在这个监控实时网口速率的脚本中,第21,22行存在错误: #!/bin/bash #Modified by lifei4@datangmobile.cn echo ===DTmobile NetSpe ...

  9. Neutron相关资料链接

    1.OpenStack Neturon 官方文档: https://docs.openstack.org/mitaka/networking-guide/ 2.Neturon理解系列文章: http: ...

  10. Python模块学习之bs4

    1.安装bs4 我用的ubuntu14.4,直接用apt-get命令就行 sudo apt-get install Python-bs4 2.安装解析器 Beautiful Soup支持Python标 ...