`

oop主节点(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提供更大的便利,这里就不再介绍了。

分享到:
评论

相关推荐

    [hadoop] ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes

    在这个系统中,NameNode作为主节点负责元数据管理,DataNode则是存储数据的实际节点。当NameNode用户未被正确定义时,整个Hadoop集群的启动流程会受到影响。 为了解决这个问题,我们可以按照以下步骤进行操作: 1....

    大数据学习笔记:Hadoop 2.x的版本架构模型介绍

    在大数据领域,Hadoop是广泛使用的分布式计算框架,它的2.x版本引入了多个重要的架构改进,以提升系统的稳定性和可...在实际应用中,选择合适的架构模型应考虑数据量、业务需求、故障恢复策略以及资源利用率等因素。

    hadoop的架构模型

    NameNode: 集群当中的主节点,管理元数据(文件的大小,文件的位置,文件的权限),主要用于管理集群当中的各种数据 seconddaryNameNode: 主要能用于hadoop当中元数据信息的辅助管理 DataNode: 集群当中的从节点,...

    Hadoop的HA简介&CAP理论的关系

    ActiveStandbyElector则负责实际的主备选举过程,它与Zookeeper交互以确定哪个NameNode应该成为主节点。 **NameNode的主备切换流程** 1. HealthMonitor初始化后,定期通过HAServiceProtocol RPC接口检查NameNode的...

    【Hadoop离线基础总结】HDFS入门介绍

    NameNode 是 HDFS 集群主节点,DataNode 是 HDFS 集群从节点。 分块存储 分块存储存在的原因: 假如有100台机器,每台机器只有1T。现在有一个2T的文件,单独存放在一台机器上是无法实现的。那么分块存储就能

    hadoop3自学入门笔记(2)—— HDFS分布式搭建

    Hadoop 3的HDFS集群架构通常由一个主名称节点(Namenode)、多个数据节点(Datanodes)和一个备用名称节点(Secondary Namenode)组成。在这个集群规划中,我们有以下的节点分配: - 192.168.3.61作为主名称节点和...

    Hadoop学习笔记

    Namenode是HDFS的主节点,负责元数据管理,如文件系统的命名空间和文件块映射信息。Datanodes是数据存储节点,它们存储实际的数据块,并向Namenode报告其状态。 **YARN**是Hadoop的资源管理系统,负责调度和管理...

    Hadoop概述及CentOS安装和使用

    HDFS采用了主从结构,由一个NameNode作为主节点,负责元数据的管理和文件系统的命名空间,而多个DataNode作为从节点,存储实际的数据块。这种设计使得HDFS能够高效地处理大规模数据集,同时具备高可用性和容错性,...

    [hadoop那些事] hadoop基于Linux7的安装配置

    接下来,你将需要配置Hadoop的相关配置文件,如`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`和`mapred-site.xml`,这些文件会定义Hadoop的运行参数,如NameNode、DataNode、ResourceManager和NodeManager等的...

    Hadoop2.0配置文件介绍

    另一个重要参数`dfs.namenode.secondary.http-address`定义了HDFS的辅助名称节点的HTTP地址,辅助名称节点用于帮助主名称节点处理名称空间的查询操作。同样,如果`hdfs-site.xml`中没有定义的属性,会从`hdfs-...

Global site tag (gtag.js) - Google Analytics