`
郑云飞
  • 浏览: 814628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

namenode故障恢复

 
阅读更多

一、dits和fsimage 

    首先要提到两个文件edits和fsimage,下面来说说他们是做什么的。

  • 集群中的名称节点(NameNode)会把文件系统的变化以追加保存到日志文件edits中。
  • 当名称节点(NameNode)启动时,会从镜像文件 fsimage 中读取HDFS的状态,并且把edits文件中记录的操作应用到fsimage,也就是合并到fsimage中去。合并后更新fsimage的HDFS状 态,创建一个新的edits文件来记录文件系统的变化

    那么问题来了,只有在名称节点(NameNode)启动的时候才会合并fsimage和edits,那么久而久之edits文件会越来越大,特别是大型繁忙的HDFS集群。这种情况下,由于某种原因你要重启名称节点(NameNode),那么会花费很长的时间去合并fsimge和edits,然后HDFS才能运行。


二、Secondary NameNode 

    目前使用的版本hadoop-0.20.2可以使用Secondary NameNode来解决上面的问题。Secondary NameNode定期合并fsimage和edits日志,把edits日志文件大小控制在一个限度下。因为内存需求和NameNode差不多(On the same order),所以Sencondary NameNode通常要运行在另外个机器上。

    secondary NameNode配置在conf/masters文件,启动命令:bin/start-dfs.sh(如果你使用不建议的start-all.sh也是会启动的)。


三、什么时候checkpiont 

secondary NameNode 什么时候执行checkpoint来合并fsimage和eidts。呢?有两个配置参数控制:

  • fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒。
  • fs.checkpoint.size    规定edits文件的最大值,一旦超过这个值则强制checkpoint,不管是否到达最大时间间隔。默认大小是64M。

     secondary NameNode 保存最后一次checkpoint的结果,存储结构和主节点(NameNode)的一样,所以主节点(NameNode)可以随时来读取。


    如果你没有启动secondary NameNode 那么可以试试 bin/hadoop secondarynamenode -checkpoint 甚至 bin/hadoop secondarynamenode -checkpoint force. 看看生成的文件。

 

    checkpoint可以解决重启NameNode时间过长的弊端。另外还有偏方:


四、Import Checkpoint(恢复数据) 

    如果主节点挂掉了,硬盘数据需要时间恢复或者不能恢复了,现在又想立刻恢复HDFS,这个时候就可以import checkpoint。步骤如下:

  • 拿一台和原来机器一样的机器,包括配置和文件,一般来说最快的是拿你节点机器中的一台,立马能用(部分配置要改成NameNode的配置)
  • 创建一个空的文件夹,该文件夹就是配置文件中dfs.name.dir所指向的文件夹。
  • 拷贝你的secondary NameNode checkpoint出来的文件,到某个文件夹,该文件夹为fs.checkpoint.dir指向的文件夹
  • 执行命令bin/hadoop namenode -importCheckpoint

     这样NameNode会读取checkpoint文件,保存到dfs.name.dir。但是如果你的dfs.name.dir包含合法的fsimage,是会执行失败的。因为NameNode会检查fs.checkpoint.dir目录下镜像的一致性,但是不会去改动它。 

    值得推荐的是,你要注意备份你的dfs.name.dir和 ${hadoop.tmp.dir}/dfs/namesecondary。


五、Checkpoint Node 和 Backup Node 


在后续版本中hadoop-0.21.0,还提供了另外的方法来做checkpoint:Checkpoint Node 和 Backup Node。则两种方式要比secondary NameNode好很多。所以 The Secondary NameNode has been deprecated. Instead, consider using the Checkpoint Node or Backup Node.

Checkpoint Node像是secondary NameNode的改进替代版,Backup Node提供更大的便利,这里就不再介绍了。


采用drbd +  heartbeat方案实现name node的HA。drbd实现共享存储,在drbd的2个服务器上共享存储元数据,2台服务器对hadoop提供一个同样的虚拟IP。heartbeat实现心跳监控,所有服务器都配有双网卡,其中一个网卡专门用于建立心跳网络连接。当heartbeat监控到线上的机器挂掉时,会自动的切换到另一台机器上,对外IP不变。

namenode的恢复,没有处理过类似的问题,不过猜想和secondary namenode 有关,
应该是将secondary namenode 存储的数据copy到namenode上,或是直接将secondary namenode 变成namenode 。
至于节点问题,down的节点经过恢复后,可以直接链接进入hadoop集群,而不用重新启动集群。
命令是
bin/hadoop-daemon.sh start datanode
分享到:
评论

相关推荐

    【HDFS篇08】NameNode故障处理1

    总结来说,处理NameNode故障的关键在于利用Secondary NameNode的检查点数据恢复NameNode的状态。然而,这种手动恢复方法并不适合大规模生产环境,因此建议使用HA配置或者定期备份元数据,以提供更高级别的数据保护。...

    Cloudera产品高可用性配置说明1

    7. **NameNode故障恢复** 在NameNode发生故障时,备用NameNode会接管并成为新的活动NameNode,这一过程是自动的,减少了服务中断时间。 通过以上所述的高可用性配置,Cloudera能够确保在CDH环境中,即使面临硬件...

    namenode启动失败参考

    综上所述,解决Namenode启动失败的问题需要对Hadoop的内部机制有深入理解,包括元数据管理、配置参数以及故障恢复策略。通过理解这些知识点,可以更有效地诊断和处理类似问题,保证Hadoop集群的稳定运行。

    hadoop namenode双机热备

    6. 故障恢复与维护:定期检查系统状态,确保DRBD和Heartbeat的正常运行。在故障发生后,应分析原因,修复问题,并考虑是否需要调整热备策略。 总结,实现"Hadoop namenode双机热备"是一个复杂但必要的过程,涉及到...

    Hadoop守护者:NameNode与DataNode故障恢复全攻略

    ### Hadoop Hadoop是一个开源框架,由Apache软件基金会开发,用于在普通硬件集群上存储和处理大量数据。它的核心组件包括: 1. **Hadoop Distributed File System (HDFS)** - 一个分布式文件系统,设计用于在多个...

    NameNode机制.docx

    #### 三、故障恢复 当NameNode发生故障时,可以通过SecondaryNameNode的数据恢复HDFS的状态。 ##### 1、拷贝SecondaryNameNode数据 - 结束NameNode进程; - 删除NameNode存储的数据: ``` [root@hop01 /] rm -...

    构建HDFS分布式文件系统

    - **Zookeeper**:用于实现NameNode故障恢复机制(ZKFC),当Active NameNode出现问题时,通过Zookeeper自动切换到Standby NameNode继续提供服务。 - **ResourceManager**:负责管理和调度整个集群的计算资源,是...

    HDFS元数据管理的高可用性优化技术研究

    - 在HDFS的active/standby模式下,如果Standby NameNode在Active NameNode故障修复阶段发生故障,系统将面临单点故障问题,导致元数据管理节点不可用,影响系统的整体高可用性。 5. 高可用性优化技术研究: - ...

    【HDFS篇07】NameNode和SecondearyNameNode1

    3. **日志滚动:** 为了确保系统的容错性和恢复能力,NameNode会定期滚动Edits日志。当达到某个条件(如日志大小限制或时间间隔),NameNode会创建一个新的Edits文件,并将后续操作写入新文件,旧的Edits文件则作为...

    02.05高级Hadoop 2.x(二)1

    通过引入NameNode HA,Hadoop克服了这些局限性,提高了HDFS的可靠性和可用性,允许在不中断服务的情况下进行维护和故障恢复。 总的来说,Hadoop 2.x中的RM HA和NameNode HA是保障大规模分布式计算环境稳定性的重要...

    hadoop之cdh

    HDFS高可用性(HA)是指通过配置多个NameNode实例来确保集群能够在NameNode故障时继续运行。这样即使主NameNode发生故障,备用NameNode也可以快速接管并提供服务,从而减少了服务中断的时间。 ##### 背景 在传统的...

    Hadoop HA(QJM)高可集群性配置

    Hadoop HA 通过配置 Active/Standby 的 NameNode 来提高集群的可用性,确保即使在 NameNode 故障的情况下也能快速恢复服务。通过使用共享存储设备或 QJM 等技术手段,可以有效解决数据同步和一致性问题,同时支持...

    HBase单点问题分析及分布式元数据管理方案

    Namenode的单点问题在于,如果Namenode故障,整个HDFS服务会中断,因为没有其他节点能够接管其元数据管理。为解决这一问题,可以考虑引入分布式Namenode方案,例如Hadoop的HA(High Availability)特性。在这种方案...

    Hadoop中namenode和secondarynamenode工作机制讲解

    它不会直接处理客户端的请求,其主要功能是定期合并namenode的编辑日志(edits)和命名空间镜像(FSImage),以防止编辑日志过大,减轻namenode的工作压力,并提供一种恢复机制。在发生故障时,可以使用...

    Hadoop分布式(高可用)部署配置文件

    10. **测试和监控**:部署完成后,务必进行充分的测试,包括手动和自动故障切换,确保系统能够在NameNode故障时正确恢复。同时,应安装监控工具,如Ambari或Prometheus,以实时监控Hadoop集群的健康状况。 总的来说...

    Hadoop2.2.0中HDFS的高可用性实现原理.pdf )

    在故障恢复期间,即将成为活跃状态的NameNode将取得写操作的权限,同时阻止另一个NameNode继续处于活跃状态。 部署Hadoop HA集群需要做如下准备: 1. NameNode机器:需要两台具有相同硬件配置的机器,分别用于部署...

    大数据开发技术.pdf

    2. SecondaryNameNode:定期合并元数据,辅助NameNode,减少故障恢复时间。 3. DataNode:存储数据,每个节点运行一个DataNode进程,管理本地存储。 4. ResourceManager(JobTracker):调度DataNode上的工作,每个...

    Hadoop集群高可用的搭建

    Active NameNode将编辑写入JournalNode,而Standby NameNode从JournalNode同步这些编辑,确保即使在Active NameNode故障后也能恢复到一致的状态。 **NameNode的切换** 在手动模式下,当Active NameNode发生故障时...

    HDFS相关问题.zip

    4. **HDFS故障恢复**:当DataNode故障时,HDFS会自动从其他副本恢复数据,保证可用性。NameNode故障时,Secondary NameNode可以接管。 5. **HDFS操作问题**:可能包括文件打开、关闭、读写错误,数据不一致,...

Global site tag (gtag.js) - Google Analytics