`
king_tt
  • 浏览: 2239155 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hadoop主节点(NameNode)备份策略以及恢复方法

阅读更多

本文转帖来自:http://jiajun.javaeye.com/blog/809125

 

一、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集群配置文件备份

    备份时需要特别注意主NameNode和备用NameNode的元数据同步,以及ResourceManager的高可用配置。在恢复时,需确保所有组件的HA配置一致,以防止单点故障。 总之,对Hadoop集群配置文件进行定期备份是保障系统稳定性...

    hadoop2.0 2个namenode 2个datanode 部署

    Namenode 是 Hadoop 集群中的主节点,负责管理文件系统的命名空间和数据块的分布。它维护着文件系统的树形结构,记录着每个文件的元数据,如文件名、权限、所有者等信息。 Datanode 的作用 Datanode 是 Hadoop ...

    hadoop namenode双机热备

    当主NameNode出现故障时,DRBD能快速将备份节点的数据切换为主用,避免数据丢失。 2. Heartbeat:Heartbeat是一个监控和故障转移系统,用于检测服务器状态并处理故障。在Hadoop NameNode热备中,Heartbeat会持续...

    Hadoop单节点伪分布式搭建中文版

    1. **格式化NameNode**:首次使用时,需格式化HDFS的名称节点,运行`bin/hadoop namenode -format`。 2. **启动Hadoop**:通过`sbin/start-dfs.sh`启动HDFS,`sbin/start-mapred.sh`启动MapReduce服务。 3. **测试...

    增加Hadoop名称节点的高可用性

    2. **主节点-从节点(Primary-Slaves,PS)**:这种模式下,除了一个主节点外,还有多个从节点参与管理,其中从节点不仅可以用于故障转移,还可以分担一部分读请求的压力。 #### 实验结果 为了验证上述方案的有效性...

    4、hadoop 多节点部署和测试(HA_HDFS)

    它通过引入Secondary NameNode(现在称为Standby NameNode)来实现,该节点与主NameNode并行运行,实时同步元数据状态。 2. **NameNode的角色**:NameNode是HDFS的核心组件,负责管理文件系统的命名空间和块映射...

    Hadoop系统完全分布式集群搭建方法

    "Hadoop系统完全分布式集群搭建方法" 本文档详细介绍了如何搭建Hadoop完全分布式集群,包括安装Linux操作系统、设置静态IP、安装SSH并配置免密码访问机制、配置Hadoop集群等步骤。本文档旨在帮助Hadoop初学者快速...

    双节点hadoop安装文档

    在主节点上启动Hadoop服务: ``` start-dfs.sh start-yarn.sh ``` 使用`jps`命令检查各个守护进程是否正常运行。 9. **测试Hadoop集群** 创建一个测试文件并将其上传到HDFS,然后查看文件: ``` echo ...

    Hadoop大数据期末考试重点

    8. **NameNode与DataNode的角色**:NameNode是主节点,负责元数据管理;DataNode是从节点,存储实际数据。 9. **Namenode的职责**:Namenode存储元数据,不存储数据,数据存储在DataNodes上。 10. **mkdir命令**:...

    hadoop配置

    2. "hadoop的namenode和secondnamenode分开部署在不同服务器.htm" - 这篇文档可能讲解了如何将Hadoop的NameNode(主节点)和Secondary NameNode(辅助节点)部署在不同的物理服务器上,以提高系统的可用性和稳定性。...

    大数据之hadoop多节点集群搭建.docx

    本文中的示例集群由三台计算机构成:一台主节点(master)和两台从节点(slave1、slave2)。master 节点上主要运行 Namenode 和 Resourcemanager 进程,而 slave 节点上运行 Datanode 和 Nodemanager 进程。这种架构...

    hadoop单节点安装.pdf

    完成所有配置后,格式化NameNode,启动Hadoop服务,包括DataNode、NameNode、Secondary NameNode、YARN的ResourceManager和NodeManager,以及MapReduce的JobHistory Server。你可以使用Hadoop提供的start-dfs.sh和...

    多节点Hadoop配置.doc

    4. **格式化NameNode**:在主节点上执行`hadoop namenode -format`命令,初始化HDFS的命名空间。 5. **启动多节点集群**: - **HDFS守护进程**:在主节点上启动NameNode和Secondary NameNode,然后在从节点上启动...

    Hadoop安装与配置详细教程(Linux)

    以上步骤详细介绍了在Linux环境下安装和配置Hadoop的过程,包括下载、解压、配置环境变量、配置Hadoop相关文件以及启动服务等关键步骤。在实际操作中,要根据你的具体环境和需求进行适当的调整。完成这些步骤后,你...

    hadoop单节点安装.docx

    【Hadoop单节点安装】 Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储海量数据。本文将详细介绍在Ubuntu 12.04 64位服务器上安装Hadoop 2.2.0的单节点配置过程。 **一、环境准备** 在...

    hadoop3.1以及jdk1.8

    在搭建Hadoop集群时,我们需要配置NameNode(主节点)和DataNode(数据节点),NameNode负责元数据管理,DataNode则存储实际的数据块。 2. **YARN(Yet Another Resource Negotiator)**:YARN是Hadoop的资源管理...

    hadoop单节点环境配置(最新)[整理].pdf

    在单节点环境中配置Hadoop,主要是为了学习和测试Hadoop的功能,而无需复杂的多节点集群设置。以下是配置Hadoop单节点环境的详细步骤: 1. **配置Java环境**: 首先,确保你的系统中已经安装了Java开发工具包(JDK...

    hadoop-2.7.2.tar.gz

    2. HA(High Availability):Hadoop 2.7.2支持NameNode的高可用性,通过Active/Passive模式,确保即使主NameNode出现故障,系统也能无缝切换到备用NameNode,避免服务中断。 3. Federation:NameNode Federation...

    Hadoop环境下各个节点时间同步方法

    当节点间时间差异过大时,可能导致数据一致性问题、错误的故障检测以及日志分析困难,特别是对于像HBase这样的强一致性的分布式数据库来说,时间同步更是必不可少的。因此,本文将详细讲解在Hadoop环境下如何使用NTP...

    大数据+NameNode和DataNode工作机制+Hadoop的环境搭建学习

    只有安装和创建好NameNode和DataNode,并进行测试可以打开和运行,才完成了Hadoop的环境搭建基础的一个部分,除此之外,还有主节点也要安装、测试。把这些度安装好了,Hadoop的环境搭建才算完成了基础部分,后期还有...

Global site tag (gtag.js) - Google Analytics