NameNode&Secondary NameNode 工作机制

NameNode&Secondary NameNode 工作机制

NameNode:
	1.启动时,加载编辑日志和镜像文件到内存
	2.当客户端对元数据进行增删改,请求NameNode
	3.NameNode记录操作日志,更新滚动日志
	4.日志记录完成,在NameNode内存中对元数据进行操作
	edits.001 操作日志
	edits.002
	edits.inprogress 正在进行的操作日志
	fsimage	镜像文件
SecondaryNameNode:(其主要作用就是:合并edit和fsimage)
	0.检查点(checkpoint)触发。条件是:
		a.定时时间到(默认一个小时)
		b.操作日志中的数据满了(100w次操作)
	1.请求NameNode是否需要CheckPoint,直接带回 NameNode是否检查结果
	2.执行CheckPoint请求
	3.滚动正在写的操作日志,生成最新的一个操作日志
	4.将操作日志和之前旧的镜像fsimage文件拷贝到SecondaryNameNode
	5.在SecondaryNameNode内存中合并日志文件和fsimage文件
	6.生成新的fsimage.chkpoint
	7.将fsimage.chkpoint拷贝到NameNode中
	8.重命名fsimage.chkpoint为fsimage

日志文件

目录结构:

$HADOOP_HOME/data/tmp/dfs/name/current
$HADOOP_DATA_HOME/tmp/dfs/name/current

edits_0000000000000000000
fsimage_0000000000000000000.md5
seen_txid
VERSION

1.fsimage:
	HDFS 文件系统元数据的一个永久性的检查点,其中包含 HDFS文件系统的所有目录和文件 idnode 的序列化信息
2.edits:
	存放 HDFS 文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到 edits 文件中。
3.seen_txid:
	文件保存的是一个数字,就是最后一个 edits_的数字

	每次 Namenode 启动的时候都会将 fsimage 文件读入内存,
	并从 00001 开始到 seen_txid 中记录的数字依次执行每个 edits 里面的更新操作,
	保证内存中的元数据信息是最新的、同步的,可以看成 Namenode 启动的时候就将 fsimage 和 edits 文件进行了合并。

查看fsimage文件和edits文件

oiv 查看 fsimage 文件
	hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径
	hdfs oiv -p XML -i fsimage_0000000000000000025 -o  /opt/module/hadoop-2.7.2/fsimage.xml

oev 查看 edits 文件
	hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径
	hdfs  oev  -p  XML  -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml

chkpoint 检查 时间 参数 设置

hdfs-default.xml

<!-- 默认:SecondaryNameNode 每隔一小时执行一次 -->
	<property>
		<name>dfs.namenode.checkpoint.period</name>
		<value>3600</value>
	</property>

<!-- 一分钟检查一次操作次数,当操作次数达到 1 百万时,SecondaryNameNode 执行一次。 -->
	<property>
		<name>dfs.namenode.checkpoint.txns</name>
		<value>1000000</value>
		<description>操作动作次数</description>
	</property>
	<property>
		<name>dfs.namenode.checkpoint.check.period</name>
		<value>60</value>
		<description> 1 分钟检查一次操作次数</description>
	</property>

NameNode多目录配置

NameNode 的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。
配置步骤:

(1)在 hdfs-site.xml 文件中增加如下内容
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
	</property>

(2)停止集群,删除 data 和 logs 中所有数据
	$ rm -rf data/ logs/
(3)格式化集群并启动。
	$ bin/hdfs namenode –format
	$ sbin/start-dfs.sh

 

原文地址:https://www.cnblogs.com/deityjian/p/12306793.html

时间: 2024-10-06 17:28:47

NameNode&Secondary NameNode 工作机制的相关文章

hadoop namenode datanode hdfs工作机制

大家都知道namenode是hadoop中的一个很重要的节点,因为他存在着跟datanode的交互跟客户端的交互,存储着dotanode中的元数据,所以就很想学习他们是如何沟通并能保证数据在任何情况下都不会丢失那? namenode的作用: 1.维护元数据信息. 2.维护hdfs的目录树. 3.相应客户端的请求. 我们先来看一下namenode大致的工作流程 可以看到namenode这边里面有三个存储单位,edits文件,edits.new 文件 ,fsimage文件,还有内存. edits文件

Secondary NameNode

在Hadoop中,有一些命名不好的模块,Secondary NameNode是其中之一.从它的名字上看,它给人的感觉就像是NameNode的备份.但它实际上却不是.HDFS集群有两类节点以管理者和工作者的工作模式运行,namenode就是其中的管理者.它管理着文件系统的命名空间,维护着文件系统树及整棵树的所有文件和目录.这些信息以两个文件的形式保存于内存或者磁盘,这两个文件是:命名空间镜像文件fsimage和编辑日志文件edit logs ,同时namenode也记录着每个文件中各个块所在的数据

hadoop的NAMENODE的管理机制,工作机制和DATANODE的工作原理

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

十、HDFS的namenode工作机制

[TOC] 一.fsimage和edits文件 1.基本概念 txid:namenode对每个操作事件(增删改操作)都给了一个唯一的id标识,称为txid,一般是从0开始自增,每多一个操作,txid就自增1. fsimage:是namenode在内存中的元数据在本地磁盘的一个镜像文件,但是通常情况fsimage并没有包含自新的操作事件,所以本质上和内存中元数据还是有差距的.这里记录的不是操作日志,其中包含HDFS文件系统的所有目录和文件idnode的序列化信息.一般命名方式是fsimage_tx

解读Secondary NameNode的功能

1.概述 最近有朋友问我Secondary NameNode的作用,是不是NameNode的备份?是不是为了防止NameNode的单点问题?确实,刚接触Hadoop,从字面上看,很容易会把 Secondary NameNode当作备份节点:其实,这是一个误区,我们不能从字面来理解,阅读官方文档,我们可以知道,其实并不是这么回事,下面就来赘述下 Secondary NameNode的作用. 2.Secondary NameNode? 在Hadoop中,有一些命名模块不那么尽人意,Secondary

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的初学者都很疑惑,

secondary namenode 检查点

secondary namenode NameNode职责是管理元数据信息,DataNode的职责是负责数据具体存储,那么SecondaryNameNode的作用是什么?对很多初学者来说是非常迷惑的.它为什么会出现在HDFS中.从它的名字上看,它给人的感觉就像是NameNode的备份.但它实际上却不是. 大家猜想一下,当HDFS集群运行一段事件后,就会出现下面一些问题: ledit logs文件会变的很大,怎么去管理这个文件是一个挑战. lNameNode重启会花费很长时间,因为有很多改动要合并

通过secondary namenode恢复崩溃的namenode

模拟namenode崩溃,将name目录的内容全部删除,然后通过secondary namenode恢复namenode. 环境:OS:Centos 6.5 x64 & Soft:Hadoop 1.2.1 1.进入name目录下,删除name目录内容. [[email protected] name]$ pwd/home/huser/hadoop/tmp/dfs/name [[email protected] name]$ lldrwxrwxr-x 2 huser huser 4096 4月 1