精华内容
下载资源
问答
  • 一次Hadoop集群宕机事故总结

    千次阅读 2015-11-12 17:56:39
    10月27日下午,机房中心交换机坏掉,导致HDFS集群和MR(YARN)集群宕掉。 当时的日志现在已查不到,只能推断整个集群宕掉的原因。 HDFS和YARN的集群,都是master/slave模式,其中处于master角色的组件有:...
    10月27日下午,机房中心交换机坏掉,导致HDFS集群和MR(YARN)集群宕掉。
    当时的日志现在已查不到,只能推断整个集群宕掉的原因。


    HDFS和YARN的集群,都是master/slave模式,其中处于master角色的组件有:NameNode,ResourceManager。某种角度,只要master没有挂掉,可以认为集群没有挂掉。
    同时,我们的HDFS集群和YARN集群都配置了HA,所以master角色可以认为还包括standby NN和standby RMs。
    在HDFS HA集群中,JournalNodes也是很重要的角色,因为JN group一旦挂掉或仅仅无法与NNs通信,NNs都不能正常工作。HDFS HA和YARN HA也都依赖Zookeeper集群。


    10月27日下午,交换机坏掉后,active NN与其他所有机器都不能通信,包括JNs,这导致active NN shutdown。因为之前standby NN是stop的状态,所以无法进行HA切换。实际上,即使能切换,standby NN所在的机器与其他集群不能通信。所以,这导致HDFS集群整个挂掉。
    一个相关的issue:https://issues.apache.org/jira/browse/HDFS-8298。


    因为YARN集群配置了HA(实际之前ops没有配置完整,仅仅是相当于打开了RM HA的开关,其他必要的与RM Restart相关的配置都没有),当天下午交换机坏掉后,active RM与ZK失联,自动切换到standby RM,但由于配置不完善(这个很致命),同时standby RM与ZK也是失联的,导致没有RM可以正常工作,YARN集群整个挂掉。
    这是当时ops收到的一条报警:Info:Critical! Yarn ResourceManager host 192.168.146.64 status have problem, status is ACTIVE! Time: Tue+Oct+27+19:06:41+CST+201。


    当天下午交换机临时回复后,我们对Hadoop集群依次进行了以下操作:
    1、启动active NN
    2、启动DataNodes
    3、启动active RM
    4、启动standby NN


    第一步active NN正常启动,但由于standby NN已经停了两个多月,active NN在启动时,对fsimage和edits进行checkpoint耗时过多,导致active NN启动时间过长。
    第二步没有问题。
    第三步基本没有问题,但由于没有配置RM Restart,导致所有未完成的jobs需要重新提交和执行。
    第四步也是正常启动,但也由于standby NN已经停了两个多月,JNs上需要checkpoint的edits过多,导致启动时间超长,而且checkpoint占用大量时间。
    展开全文
  • hadoop 断电宕机处理

    千次阅读 2015-08-18 10:31:34
    由于公司机房异常断电,导致测试环境的hadoop集群数据全部down掉。重启hadoop集群后,访问:http://xxx.xxx.xxx.xx:50070/dfshealth.html 提示: [Bash shell] 纯文本查看 复制代码 01 ...
    由于公司机房异常断电,导致测试环境的hadoop集群数据全部down掉。重启hadoop集群后,访问:http://xxx.xxx.xxx.xx:50070/dfshealth.html
    提示:

    [Bash shell] 纯文本查看 复制代码
    01 NameNode is still loading. Redirecting to the Startup Progress page.


    如图:


     
    这个不是错误。因为hadoop启动时,会进入安全模式进行自检,自检完毕就好了。

    下面来看看NameNode重启的状态变化:

    NameNode启动,集群将处于安全模式。
    查看集群的状态:
    [Bash shell] 纯文本查看 复制代码
    01 [hduser@hadoop0 bin]$ hdfs dfsadmin -safemode get 
    02 Safe mode is ON


    HDFS中任何文件,目录和Block都被表示为一个对象存储在NameNode的内存中。该对象占用150 bytes的内存空间。在NameNode启动的时候,NameNode加载fsimage(Filesystem image:文件meta信息的持久化的检查点)文件到内存中,然后在editlog中执行相应的操作。加载fsimage文件包含文件metadata信息,但是不包含文件块位置的信息。

    文件块位置的信息,是在所有DataNode启动的时候扫描本地磁盘,之后,DataNode保存的block信息,然后将这些信息汇报给NameNode,NameNode接收到每个DataNode的块信息汇报后,将接收到的块信息和其所在的DataNode等信息组装成BlockMap,保存在NameNode的内存中。

    最后离开安全模式,NameNode正式可用。
    在查看集群的状态:

    [Actionscript3] 纯文本查看 复制代码
    01 [hduser@hadoop0 bin]$ hdfs dfsadmin -safemode get 
    02 Safe mode is OFF


    查看NameNode日志:

    [Bash shell] 纯文本查看 复制代码
    01 2015-08-17 10:05:22,298 INFO org.apache.hadoop.hdfs.StateChange: STATE* Safe mode ON, in safe mode extension.
    02 The reported blocks 450638 has reached the threshold 0.9990 of total blocks 450676. The number of live datanodes 5 has reached the minimum number 0. In safe mode extension. Safe mode will be turned off automatically in 9 seconds.
    03 2015-08-17 10:05:25,844 INFO org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor: Rescanning after 30000 milliseconds
    04 2015-08-17 10:05:25,846 INFO org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor: Scanned 0 directive(s) and 0 block(s) in 1 millisecond(s).
    05 2015-08-17 10:05:32,299 INFO org.apache.hadoop.hdfs.StateChange: STATE* Leaving safe mode after 727 secs
    06 2015-08-17 10:05:32,299 INFO org.apache.hadoop.hdfs.StateChange: STATE* Safe mode is OFF


    因为DataNode向NameNode汇报块信息的进度,当99.9%的block汇报完毕就会离开安全模式。
    自检完之后再访问:http://xxx.xxx.xxx.xx:50070/dfshealth.html。会发现有些Block已经无法恢复了。如图:


     
    展开全文
  • then echo $(date) 'NameNode is not running.' >> /home/logs/clusterMonitor.log echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log fi if [[ -z $DataNode ]]; then echo $...

    一、实现原理

    jps取角色的端口号,如果存在则跳过,否则启动角色,并把日志打印,记录角色重启记录。

    clusterMonitor.sh(主节点)

    #!/bin/bash
    echo '.......................................'
    QuorumPeerMain=$(jps | grep ' QuorumPeerMain')
    ZKFC=$(jps | grep ' DFSZKFailoverController')
    NameNode=$(jps | grep ' NameNode')
    DataNode=$(jps | grep ' DataNode')
    JournalNode=$(jps | grep ' JournalNode')
    ResourceManager=$(jps | grep ' ResourceManager')
    NodeManager=$(jps | grep ' NodeManager')
    HMaster=$(jps | grep ' HMaster')
    HRegionServer=$(jps | grep ' HRegionServer')
    echo $QuorumPeerMain
    echo $ZKFC
    echo $NameNode
    echo $DataNode
    echo $JournalNode
    echo $ResourceManager
    echo $NodeManager
    echo $HMaster
    echo $HRegionServer
    echo '.......................................'
    if [[ -z $QuorumPeerMain ]]; then
    	echo $(date) 'zookeeper is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $(zkServer.sh start) >> /home/logs/clusterStart.log
    elif [[ -z $ZKFC ]]; then
    	echo $(date) 'ZKFC is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) | hdfs --daemon start zkfc >> /home/logs/clusterStart.log
    fi	
    if [[ -z $NameNode ]]; then
    	echo $(date) 'NameNode is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $DataNode ]]; then
    	echo $(date) 'DataNode is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $JournalNode ]]; then
    	echo $(date) 'JournalNode is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $ResourceManager ]]; then
    	echo $(date) 'ResourceManager is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $NodeManager ]]; then
    	echo $(date) 'NodeManager is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $HMaster ]]; then
    	echo $(date) 'HMaster is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HBASE_HOME/bin/start-hbase.sh) >> /home/logs/clusterStart.log
    fi	
    if [[ -z $HRegionServer ]]; then
    	echo $(date) 'HRegionServer is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HBASE_HOME/bin/start-hbase.sh) >> /home/logs/clusterStart.log
    fi
    echo '.......................................'
    

    clusterMonitor.sh(从节点) 

    #!/bin/bash
    echo '.......................................'
    QuorumPeerMain=$(jps | grep ' QuorumPeerMain')
    DataNode=$(jps | grep ' DataNode')
    NodeManager=$(jps | grep ' NodeManager')
    HRegionServer=$(jps | grep ' HRegionServer')
    echo $QuorumPeerMain
    echo $DataNode
    echo $NodeManager
    echo $HRegionServer
    echo '.......................................'
    if [[ -z $QuorumPeerMain ]]; then
    	echo $(date) 'zookeeper is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $(zkServer.sh start) >> /home/logs/clusterStart.log
    fi
    if [[ -z $DataNode ]]; then
    	echo $(date) 'DataNode is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi
    if [[ -z $NodeManager ]]; then
    	echo $(date) 'NodeManager is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HADOOP_HOME/sbin/start-all.sh) >> /home/logs/clusterStart.log
    fi
    if [[ -z $HRegionServer ]]; then
    	echo $(date) 'HRegionServer is not running.' >> /home/logs/clusterMonitor.log
    	echo $(date) $($HBASE_HOME/bin/start-hbase.sh) >> /home/logs/clusterStart.log
    fi
    echo '.......................................'
    

    二、定时执行 

    vim /etc/crontab
    # 一个小时监控一次
    0  *  *  *  * root /home/shell/clusterMonitor.sh

    三、运行效果

    主节点执行 /home/shell/clusterMonitor.sh脚本

    从节点执行 /home/shell/clusterMonitor.sh脚本 

    四、脚本说明

    脚本名称: clusterMonitor.sh

    日志路径1:/home/logs/clusterMonitor.log

    日志路径2:/home/logs/clusterStart.log

    clusterMonitor.log:打印当前节点角色没启动的信息

    clusterStart.log:打印角色启动时控制台输出的信息

    展开全文
  • 三台centos7机器构建hadoop集群,其中一台宕机后对其重启后再次加入集群 问题描述:准备关闭hdfs集群然后修改hdfs-site.xml文件后进行重启时偶然发现node03节点处于宕机状态(原因为无法连接网络,应该是网络问题...

    三台centos7机器构建hadoop集群,其中一台宕机后对其重启后再次加入集群

    问题描述:准备关闭hdfs集群然后修改hdfs-site.xml文件后进行重启时偶然发现node03节点处于宕机状态(原因为无法连接网络,应该是网络问题导致机器无法上网),如下信息所示:

    后对node03机器重启后网络功能恢复

    然而重启之后,node03机器的zookeeper,hdfs等功能均为关闭状态,需要重启并加入机器,操作方式如下:

    1. 启动noed03机器的zookeeper

      [root@node03 zookeeper-3.4.9]# cd bin/
      [root@node03 bin]# ls
      README.txt    zkCli.cmd  zkEnv.cmd  zkServer.cmd  zookeeper.out
      zkCleanup.sh  zkCli.sh   zkEnv.sh   zkServer.sh
      [root@node03 bin]# zkServer.sh start
      
    2. node01主机启动再次启动hdfs

      [root@node01 sbin]# start-dfs.sh

       

    3. node01主机再次启动yarn

      [root@node01 sbin]# start-yarn.sh 
      starting yarn daemons
      resourcemanager running as process 1742. Stop it first.
      node01: nodemanager running as process 1847. Stop it first.
      node02: nodemanager running as process 1407. Stop it first.
      node03: starting nodemanager, logging to /export/servers/hadoop-2.7.5/logs/yarn-root-nodemanager-node03.out
      

      node1和node2已经正常运行且在集群中,node01主机再次运行启动命令,则已经启动的机器将无影响,未启动的机器则被开启

    (PS:hadoop集群的启动,首先要建立在zookeeper是启动的状态下)
     

    展开全文
  • Hadoop集群 HDFS HA

    2018-11-27 20:41:17
    一般在生产中,机器出现故障是难以避免的,那么如果nn节点宕机了,这个时候就不能对外提供服务 当时如果我们采用hadoop集群,那么一个nn节点挂了,我们另外的一个nn节点就会从standby切换到active状态,对外去提供...
  • 描述 Ambari管理的Hadoop生产集群...nn1主机在运行期间宕机,nn2切换为active namenode,重启nn1主机,系统启动失败。 硬件检测正常,排除硬件问题。 最优的解决方案是修复操作系统,尝试多种方法,结果失败。 这时...
  • hadoop集群的高可用 集群有2个namenode 同一时间有一个对外提供服务 active namenode 另一个namenode 热备 stanby namenode 一旦active的宕机 stanby立即切换为actice 客户端感觉集群一直有namenode 如何实现: 保证...
  • 原文来自:扎心了,老铁的《Hadoop学习之路(五)Hadoop集群搭建模式和各模式问题》 一、分布式集群的通病 Hadoop的HDFS和YARN都是一主多从的分布式架构。那么如果主节点或是管理者宕机了,会出现什么问题?当然是...
  • 一、Hadoop HA 原理概述1、为什么会有 hadoop HA 机制呢?HA:High Available,高可用在... 对于只有一个 NameNode 的集群,如果 NameNode 机器出现故障(比如宕机或是软件、硬件 升级),那么整个集群将无法使用,直...
  • 配置好了静态ip搭建完了hadoop分布式集群后,开始搭建Zookeeper软件,之后搭建hbase环境(https://blog.csdn.net/master_hunter/article/details/108704148)。在此领域本人有诸多不明确疑问,可能文章会有些许错误...
  • 安装Hadoop集群中的一些通用问题 Linux环境变量加载的顺序 分布式集群的通用问题 当前的HDFS和YARN都是一主多从的分布式架构,主从节点—管理者和工作者 问题:如果主节点或是管理者宕机了。会出现什么问题? ...
  • Hadoop集群错误

    2015-03-24 03:30:42
     1 集群启动一段时间Master就失去了和Slave的连接,显示Slave宕机了,ssh Slave1过后恢复正常,查看Slave的日志:显示:Call to ubuntu/192.168.0.1:9000 failed on connection exception: java.net....
  • Hadoop集群的启动顺序

    2019-02-25 10:18:31
    对于hadoop,使用Zookeeper的事件处理确保整个集群只有一个活跃的NameNode,存储配置信息,对于HBase,使用Zookeeper的事件处理确保整个集群只有一个HMaster,察觉HRegionServer的联机和宕机,存储访问控制列表等 ...
  • 标题hadoop集群刷新时间同步脚本: 对于集群,如果时间相差很大,主节点会认为该节点宕机了,所以,刷新时间同步很有必要,但是选择到每个集群一一输入命令进行刷新,这样也会很繁琐 首先该脚本的实现是基于实现了...
  • 本客户端是配置客户端连接 高可用的完全分布式集群。 问题的提出:为什么要配置客户端连接集群?...但是其群内操作会造成数据倾斜问题,严重时会导致节点的宕机集群内操作,选择一台DataNode节点作为操...
  • hadoop集群升级手札

    千次阅读 2013-04-24 19:50:52
    hadoop还算稳定,基本没什么bug,而hive基于hbse查询时真是问题百出,hbase各种bug,比如丢数据,丢表,regionserver频繁宕机,各种打补丁,改错误搞得我脑袋都要爆了。于是决定给hbase来一个彻底的升级替换。 一...
  • hadoop测试群集机房断电宕机处理

    千次阅读 2016-04-13 14:07:05
    由于公司机房异常断电,导致测试环境的hadoop集群数据全部down掉。重启hadoop集群后,访问:http://xxx.xxx.xxx.xx:50070/dfshealth.html 提示: NameNode is still loading. Redirecting to the Startup Progress ...
  • 副本数实际设置的为3,但是发现却少了副本数 原因:可能是另一个机子宕机了,或者slaves里面没有对应的hostname
  • 分布式集群的通用问题 ...当集群中的主节点宕机之后,整个集群不可用。这个现象叫做:单点故障。SPOF 单点故障讲述的概念有两点 1、如果说宕机的那个节点是从节点,那么整个集群能够继续运行,...
  • 由于2.5.x 已经出来有好几个月了,网上配置类似架构的文章也有很多,所以在这里重点描述一下namenode 和 secondary namenode不再同一台机器上的配置方法,以及namenode 宕机后 meta数据的恢复方法,并且描述一下几个...
  • Hadoop错误之namenode宕机的数据恢复

    千次阅读 2018-01-09 17:49:51
    在修复hadoop集群某一个datanode无法启动的问题时,搜到有一个答案说要删除hdfs-site.xml中dfs.data.dir属性所配置的目录,再重新单独启动该datanode即可; 问题就出在这个误删除上,当时是在namenode的hadoop/hdfs...
  • Hadoop 1.X版本中,NameNode是整个HDFS集群的单点故障(single point of failure,SPOF):每一个HDFS集群只能有一个NameNode节点,一旦NameNode所在服务器宕机或者出现故障将导致整个集群都不可用,除非重启或者...
  • 我设计的架构如图,理论上任意一台机器宕机集群仍然可以正常工作,不知道这样是否可行。 求大神指导。 ![图片说明](https://img-ask.csdn.net/upload/201601/06/1452063894_218816.png)
  • 其中,用于启动hadoop集群的节点主机需要配置与其他所有节点的免密登陆;多个NameNode节点之间需要互相免密登陆,NameNode节点自己与自己也要免密登陆。 #如果root下没有.ssh文件夹请自行创建 cd /root/.ssh...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 389
精华内容 155
关键字:

hadoop集群宕机