Namenode和Secondarynamenode的关系

NameNode将对文件系统的改动追加保存到本地文件系统上的一个日志文件(edits)。当一个NameNode启动时,它首先从一个映像文件(fsimage)中读取HDFS的状态,接着应用日志文件中的edits操作。然后它将新的HDFS状态写入(fsimage)中,并使用一个空的 edits文件开始正常操作。因为NameNode只有在启动阶段才合并fsimage和edits,所以一段时间后日志文件可能会变得非常庞大,特别是对大型的集群。日志文件太大的另一个副作用是下一次NameNode启动会花很长时间。

Secondary NameNode定期合并fsimage和edits日志,将edits日志文件大小控制在一个限度下。因为内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。Secondary NameNode通过bin/start-dfs.sh在conf/masters中指定的节点上启动。

Secondary NameNode的检查点进程启动,是由两个配置参数控制的:

* fs.checkpoint.period,指定连续两次检查点的最大时间间隔, 默认值是1小时。

* fs.checkpoint.size定义了edits日志文件的最大值,一旦超过这个值会导致强制执行检查点(即使没到检查点的最大时间间隔)。默认值是64MB。

Secondary NameNode保存最新检查点的目录与NameNode的目录结构相同。所以NameNode可以在需要的时候读取Secondary NameNode上的检查点镜像。

如果NameNode上除了最新的检查点以外,所有的其他的历史镜像和edits文件都丢失了, NameNode可以引入这个最新的检查点。以下操作可以实现这个功能:

* 在配置参数dfs.name.dir指定的位置建立一个空文件夹;

* 把检查点目录的位置赋值给配置参数fs.checkpoint.dir;

* 启动NameNode,并加上-importCheckpoint。

NameNode会从fs.checkpoint.dir目录读取检查点,并把它保存在dfs.name.dir目录下。如果dfs.name.dir目录下有合法的镜像文件,NameNode会启动失败。 NameNode会检查fs.checkpoint.dir目录下镜像文件的一致性,但是不会去改动它。

SecondaryNameNode工作流程:

SecondaryNameNode节点通知NameNode节点生成新的日志文件,以后的日志都写到新的日志文件中。

SecondaryNameNode节点用http get从NameNode节点获得fsimage文件及旧的日志文件。

SecondaryNameNode节点将fsimage文件加载到内存中,并执行日志文件中的操作,然后生成新的fsimage文件。

SecondaryNameNode节点将新的fsimage文件用http post传回NameNode节点上。

NameNode节点可以将旧的fsimage文件及旧的日志文件,换为新的fsimage文件和新的日志文件(第一步生成的),然后更新fstime文件,写入此次checkpoint的时间。

这样NameNode节点中的fsimage文件保存了最新的checkpoint的元数据信息,日志文件也重新开始,不会变的很大了。

时间: 2025-01-31 09:28:10

Namenode和Secondarynamenode的关系的相关文章

NameNode跟secondarynamenode的执行过程

一.NameNode详解 文件包括: fsimage:元数据镜像文件.存储某一时段NameNode内存元数据信息. edits:操作日志文件. fstime:保存最近一次checkpoint的时间 以上这些文件是保存在linux的文件系统中. /data/hadoop/hdfs/name [[email protected] name]$ ls current  image  in_use.lock  previous.checkpoint [[email protected] name]$ c

大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和SecondaryNameNode(面试开发重点)

第1章 HDFS概述1.1 HDFS产出背景及定义1.2 HDFS优缺点1.3 HDFS组成架构1.4 HDFS文件块大小(面试重点)第2章 HDFS的Shell操作(开发重点)第3章 HDFS客户端操作(开发重点)3.1 HDFS客户端环境准备3.2 HDFS的API操作3.2.1 HDFS文件上传(测试参数优先级)3.2.2 HDFS文件下载3.2.3 HDFS文件夹删除3.2.4 HDFS文件名更改3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断3.3 HDFS的I/O

Hadoop之HDFS(NameNode和SecondaryNameNode)(面试开发重点)

NameNode和SecondaryNameNode(面试开发重点) 1 NN和2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低.因此,元数据需要存放在内存中.但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了.因此产生在磁盘中备份元数据的FsImage. 这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,

NameNode和SecondaryNameNode

1.NN和2NN工作机制 第一阶段:NameNode启动 (1) 第一次启动NameNode格式化后,创建fsimage和edits文件,如果不是第一次启动,直接加载编辑日志和镜像文件到内存: (2) 客户端对元数据进行增删改的请求: (3) NameNode记录操作日志,更新滚动日志: (4) NameNode在内存中对数据进行增删改查: 第二阶段:Secondary NameNode工作 (1) Secondary NameNode询问NameNode是否需要checkpoint直接带回Na

主节点的namenode、secondarynamenode启动成功,但是slave启动不成功

Hadoop2.7.2集群secondarynamenode启动成功,但是slave节点datenode启动不成功.slave节点在 logs下的 datanote 日志中报错:java.net.BindException: Port in use: localhost:0, 以及提示:无法指定被请求的地址.修改 /etc/hosts 文件 将原有的默认配置加入即可(本操作中,将集群所有节点的hosts文件都做了修改,单独修改salve节点未做测试). vi /etc/hosts在最后一行加入如

Secondary NameNode究竟是做什么的

Secondary NameNode:它究竟有什么作用? 在hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一.从它的名字上看,它给人的感觉就像是NameNode的备份.但它实际上却不是.很多Hadoop的初学者都很疑惑,Secondary NameNode究竟是做什么的,而且它为什么会出现在HDFS中.因此,在这篇文章中,我想要解释下Secondary NameNode在HDFS中所扮演的角色. 从它的名字来看,你可能认为它跟NameNode有点关系.没错,你

Secondary NameNode 的作用

https://blog.csdn.net/xh16319/article/details/31375197 很多人都认为,Secondary NameNode是NameNode的备份,是为了防止NameNode的单点失败的,其实并不是这样. Secondary NameNode:它究竟有什么作用? 在Hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一.从它的名字上看,它给人的感觉就像是NameNode的备份.但它实际上却不是.很多Hadoop的初学者都很疑惑,

hadoop启动后jps没有namenode(转)

hadoop启动后jps没有namenode 一般都是由于两次或两次以上格式化NameNode造成的,有两种方法可以解决: 1.删除DataNode的所有资料 2.修改每个DataNode的namespaceID(位于/home/hdfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/home/hdfs/name/current/VERSION文件中), 目的是两者一致. 但是查看后,两者的ID是一样的, 于是查看/usr/local/ha

HDFS体系结构(NameNode、DataNode详解)

hadoop项目地址:http://hadoop.apache.org/ 分布式文件系统概述: 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 . 是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间. 通透性.让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般. 容错.即使系统中有某些节点脱机,整体