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

简介:

link:http://jiajun.iteye.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和 ${fs.checkpoint.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提供更大的便利,这里就不再介绍了。

 

切换namenode之后发现 进入的安全模式如下

$ hadoop dfsadmin -report
Safe mode is ON

 

解决方案有两种

1)执行命令:bin/hadoop dfsadmin -safemode leave
dfsadmin -safemode value 参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get -  返回安全模式是否开启的信息
wait - 等待安全模式结束。
2)bin/hadoop fsck /
 
第一种方法,需要每次都执行一遍,很纠结~
第二种方法,如果数据多,那执行起来会很慢,没办法,慢慢等吧。
 

[hadoop@vm×× name]$ hadoop fsck /
FSCK started by hadoop (auth:SIMPLE) from /×.×.×.× for path / at Thu Apr 16 15:31:10 CST 2015
..Status: HEALTHY
 Total size: 109836279 B
 Total dirs: 10
 Total files: 2
 Total blocks (validated): 2 (avg. block size 54918139 B)
 Minimally replicated blocks: 2 (100.0 %)
 Over-replicated blocks: 0 (0.0 %)
 Under-replicated blocks: 0 (0.0 %)
 Mis-replicated blocks:  0 (0.0 %)
 Default replication factor: 1
 Average block replication: 1.0
 Corrupt blocks:  0
 Missing replicas:  0 (0.0 %)
 Number of data-nodes:  4
 Number of racks:  1
FSCK ended at Thu Apr 16 15:31:10 CST 2015 in 4 milliseconds


The filesystem under path '/' is HEALTHY



本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/4425990.html,如需转载请自行联系原作者。


目录
相关文章
|
1天前
|
分布式计算 资源调度 Hadoop
Hadoop节点资源扩展环境部署
【4月更文挑战第16天】扩展Hadoop集群涉及多个步骤:准备新节点,配置静态IP,安装并配置Hadoop,将新节点添加到集群,验证测试,及优化调整。确保符合硬件需求,更新集群节点列表,执行`hdfs dfsadmin -refreshNodes`命令,检查新节点状态,并依据测试结果优化性能。注意不同环境可能需要调整具体步骤,建议参照官方文档并在测试环境中预演。
12 4
|
1天前
|
存储 分布式计算 固态存储
Hadoop节点资源扩展硬件选择
【4月更文挑战第16天】在扩展Hadoop节点资源时,重点是选择合适的硬件。推荐使用x86架构的机架式服务器,配备多核高主频处理器以提升计算能力,确保至少16GB内存以支持高效数据处理。选择高容量、高速度的SAS或SSD硬盘,并利用RAID技术增强数据冗余和容错。网络方面,需要千兆以太网或更快的连接以保证数据传输。同时,要考虑成本、功耗和维护,确保硬件与Hadoop版本兼容,并在选购前进行充分测试。
12 3
|
4天前
|
存储 分布式计算 监控
Hadoop的NameNode的监控与副本管理
【4月更文挑战第15天】NameNode是Hadoop HDFS的关键组件,负责元数据管理和监控,确保数据安全、可靠和性能。监控包括NameNode的状态、资源使用和性能,以保证集群稳定性。NameNode在副本管理中负责副本创建、分布、维护和删除,确保数据冗余和容错性。有效的监控和副本管理策略对Hadoop集群的高效运行至关重要。
12 2
|
5天前
|
分布式计算 负载均衡 Hadoop
Hadoop集群节点添加
Hadoop集群节点添加
|
3月前
|
存储 分布式计算 Hadoop
Hadoop的Secondary NameNode在HDFS中的作用是什么?
Hadoop的Secondary NameNode在HDFS中的作用是什么?
38 0
|
4月前
|
分布式计算 Hadoop 大数据
大数据成长之路-- hadoop集群的部署(4)退役旧数据节点
大数据成长之路-- hadoop集群的部署(4)退役旧数据节点
53 0
|
4月前
|
分布式计算 Hadoop 大数据
大数据成长之路-- hadoop集群的部署(3)HDFS新增节点
大数据成长之路-- hadoop集群的部署(3)HDFS新增节点
66 0
|
6月前
|
分布式计算 Hadoop
【hadoop】解决Datanode denied communication with namenode because hostname cannot be resolved
【hadoop】解决Datanode denied communication with namenode because hostname cannot be resolved
126 0
|
8月前
|
机器学习/深度学习 缓存 分布式计算
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
|
9月前
|
分布式计算 Hadoop
hadoop 的 namenode 宕机,怎么解决?
hadoop 的 namenode 宕机,怎么解决?
207 0

热门文章

最新文章

相关实验场景

更多