hadoop元数据管理机制

元数据管理依靠的就是Secondary namenode的工作机制

首先namenode对数据的管理采用三种存储形式:

内存元数据(NameSystem)

磁盘元数据镜像文件(fsimage)

数据操作日志文件(edits)

要想了解hadoop如何管理元数据的,就要先知道fsimage和edits是什么。

(1)、fsimage文件其实是Hadoop文件系统元数据的一个永久性的检查点,包含Hadoop文件系统中的所有目录和文件idnode的序列化信息;对于文件来说,包含的信息有修改时间、访问时间、块大小和组成一个文件块信息等;而对于目录来说,包含的信息主要有修改时间、访问控制权限等信息。

(2)、edits文件存放的是Hadoop文件系统的所有更新操作的路径,文件系统客户端执行的所以写操作首先会被记录到edits文件中。对hdfs进行的各种更新操作进行记录,hdfs客户端执行所有写操作都会被记录

fsimage和edits文件都是经过序列化的,在NameNode启动的时候,它会将fsimage文件中的内容加载到内存中,之后再执行edits文件中的各项操作,使得内存中的元数据和实际的同步,存在内存中的元数据支持客户端的读操作。

工作步骤:

一,namenode

1.元数据有更新请求,首先会加载到内存,然后记录到操作日志edits

二、namenode和Secondary namenode

1.Secondary namenode会定时(默认情况下30分钟)或者edits中的数量,并向namenode发出checkpiont 

2.namenode检查触发条件,满足条件时(有数据),会向Secondary namenode做出请求

3 namenode中的edits.inprogress会立马滚动一次,将正在写的数据生成为edits

4.Secondary namenode会将namenode上的fsimage和若干个edits下载到自己节点上

5.将fsimage和edits合并成为一个新的文件fsimage

6.会进行一个dump操作(清道:把内存写进磁盘中),生成新的fsimage文件

7.把生成的新的文件请求上传到namenode,nomenode会将本地fsimage进行冲命名

8.合并更新之前的edits文件在下载完以后,系统会自动清除

因为图片的原因我又画了一遍,就一起上传看看。画的不好请见谅

猜你喜欢

转载自blog.csdn.net/S_Running_snail/article/details/83095205