`

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

7
0
分享到:
评论
2 楼 iammonster 2011-10-02  
利用NFS(网络共享文件夹/mnt/nfs/name)双机备份
<property>
        <name>dfs.name.dir</name>
        <value>/var/cloud/namenode,/mnt/disk_backup/,/mnt/nfs/name</value>
</property>
如何共享:http://jiajun.iteye.com/blog/1184562
1 楼 亦梦亦真 2011-01-19  
您好,我是初学者,像您说的要复制的那个secondary NameNode checkpoint 这个是什么东西呢?

相关推荐

    Hadoop单机模式的配置与安装

    前言: 由于Hadoop属于java程序,所以,安装Hadoop之前需要先安装jdk。...说以对于HDFS文件系统来说,需要一个节点随时给他复制编辑到名称节点NameNOde里面去。这样的一个类似于备份的节点叫做SecondaryNameNode。

    Hadoop大数据平台构建、HDFS配置、启动与验证教学课件.pptx

    主节点使用 hadoop 用户登录 [root@master ~]# su – hadoop --从root用户切换为hadoop身份 通过 SecureCRT 软件上传 Hadoop安装文件到 /opt 目录,再由hadoop用户解压 [hadoop@master ~]$ cd /opt [hadoop@master ...

    基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc

    首先开启Hadoop集群:start-all.sh:开启所有的Hadoop所有进程,在主节点上进行 NameNode它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问。 Secondary NameNode.....

    hadoop-管理

    首先,把新节点的 IP或主机名 加入主节点(master)的 conf/slaves 文件。 然后登录新的从节点,执行以下命令: $ cd path/to/hadoop $ bin/hadoop-daemon.sh start datanode $ bin/hadoop-daemon.sh start ...

    Hadoop-v2-MasterNode:在基于CentOSLinux上配置Hadoop版本2主节点的角色

    Hadoop主节点 该Ansible角色用于配置Hadoop v2 MasterNode! 该角色将使用最稳定的Hadoop 2版本,即Hadoop-2.10.1 该角色用于仅在基于CentOSLinux上配置Hadoop。 要求 需要Hotspot Java版本8。 在此角色中,特别...

    从零开始Hadoop安装和配置.rar

    说明,因为这里涉及到多台计算机的共同操作,对于主节点namenode 整篇文章照做,对于datanode节点,除了Hadoop的配置,其他照做,如果配置主机数为多太,只需在后更改hadoop配置文件即可 ________________

    从零开始Hadoop安装和配置.docx

    说明,因为这里涉及到多台计算机的共同操作,对于主节点namenode 整篇文章照做,对于datanode节点,除了Hadoop的配置,其他照做,如果配置主机数为多太,只需在后更改hadoop配置文件即可 ________________

    hadoop集群信息

    搭建高可用的Hadoop集群,基于NFS共享磁盘的namenode配置,使用zookeeper进行主节点推举

    大数据hadoop集群部署-最详细的部署-2.8.5.pdf

    HDFS HA通常由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。Active NameNode对外提供服务,而...Zookeeper的作用是负责HDFS中NameNode主备节点的选举,和YARN框架下ResourceManaer主备节点的选举。

    EasyHadoop实战手册

    2.HDFS,hadoop的分布式文件系统3.NameNode,hadoop HDFS元数据主节点服务器,负责保存DataNode 文件存储元数据信息。4.JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。5....

    Hadoop2.2.0集群搭建手册

    2、采用hadoop2.0官方提供QJM —HDFS,HA的解决方案,在QJM方案中,主备NameNode之间通过一组JournalNode同步元数据信息。 3、这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当...

    Apress - Pro Hadoop

     MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。  HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。  Hadoop也跟其他云计算项目有共同点和目标:实现海量数据的...

    实验项目 MapReduce 编程

    2. 在 Hadoop 集群主节点上搭建 MapReduce 开发环境 Eclipse。 3. 查看 Hadoop 自带的 MR-App 单词计数源代码 WordCount.java,在 Eclipse 项目 MapReduceExample 下建立新包 com.xijing.mapreduce,模仿内置的 ...

    hadoop-utils:Apache Hadoop 2.6.0 安装与配置

    安装: 首先,您必须在主节点之前在从节点上安装 Apache Hadoop,对于每个从节点运行以下命令行: ./hadooputils.py --install=slave --hostname=slavenode1 --namenode=namenodeINFO -- Start Apache Hadoop Pre-...

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

    NameNode:集群当中的主节点,主要用于管理集群当中的各种元数据 secondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理 DataNode:集群当中的从节点,主要用于存储集群当中的各种数据 数据计算核心模块: ...

    Hadoop权威指南(第2版).

    MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。 HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。 Hadoop也跟其他云计算项目有共同点和目标:实现海量数据的计算。而...

    基于Hadoop的大数据处理系统.pdf

    ⽬前⼤数据的处理平台以Hadoop为主,Hadoop是⼀个开源的可运⾏于⼤规模集群上的分布式⽂件系统和和分布式计算的基础框架,提供 了对于海量数据存储以及分布式计算的⽀持。Hadoop擅长于在廉价机器搭建的集群上进⾏...

    hadoop的架构模型

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

    实验项目 实战 HDFS 实验报告

    一、实验目的 1. 理解 HDFS 体系架构。 2. 理解 HDFS 文件存储...4. 在 Hadoop 集群主节点上搭建 HDFS 开发环境 Eclipse。 5. 使用 HDFS Java API 编写 HDFS 文件操作程序,实现上传本地文件到 HDFS 的功能。。。。。

    CDH5.11安装文档

    172.30.5.243 namenode,zookeeper, HMaster,kafka,spark, elasticsearch master 内存:64GB 硬盘:7T 172.30.5.244 secorndaryNameNode,datanode,zookeeper,kafka, HRegionServer,spark, elasticsearch slave1 内容...

Global site tag (gtag.js) - Google Analytics