|NO.Z.00023|——————————|BigDataEnd|——|Hadoop&HDFS.V08|——|Hadoop.v08|HDFS元数据管理机制|NN和2NN.v01|

一、HDFS元数据管理机制
###  --- [HDFS分布式文件系统]

~~~     [HDFS元数据管理机制Namenode、Fsimage及Edits编辑日志]
~~~     [HDFS元数据管理机制之2NN及checkpoint机制]
~~~     [HDFS元数据管理机制之Fsimage及Edits文件解析]
~~~     [HDFS元数据管理机制之CheckPoint周期]
~~~     [HDFS元数据管理之NN故障处理]    
###  --- 问题1:NameNode如何管理和存储元数据?

~~~     # 计算机中存储数据两种:
~~~     内存或者是磁盘
~~~     # 元数据存储磁盘:
~~~     存储磁盘无法面对客户端对元数据信息的任意的快速低延迟的响应,
~~~     但是安全性高元数据存储内存:元数据存放内存,
~~~     可以高效的查询以及快速响应客户端的查询请求,数据保存在内存,
~~~     如果断点,内存中的数据全部丢失。
~~~     # 解决方案:
~~~     内存+磁盘;NameNode内存+FsImage的文件(磁盘)
###  --- 新问题:磁盘和内存中元数据如何划分?
~~~     两个数据一模一样,还是两个数据合并到一起才是一份完整的数据呢?

~~~     # 一模一样:
~~~     client如果对元数据进行增删改操作,需要保证两个数据的一致性。
~~~     FsImage文件操作起来效率也不高。
~~~     # 两个合并=完整数据:
~~~     NameNode引入了一个edits文件(日志文件:只能追加写入)
~~~     edits文件记录的是client的增删改操作,
~~~     不再选择让NameNode把数据dump出来形成FsImage文件(这种操作是比较消耗资源)。
二、元数据管理流程图
###  --- 第一阶段:NameNode启动

~~~     第一次启动NameNode格式化后,创建Fsimage和Edits文件。
~~~     如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
~~~     客户端对元数据进行增删改的请求。
~~~     NameNode记录操作日志,更新滚动日志。
~~~     NameNode在内存中对数据进行增删改。
###  --- 第二阶段:Secondary NameNode工作

~~~     Secondary NameNode询问NameNode是否需要CheckPoint。
~~~     直接带回NameNode是否执行检查点操作结果。
~~~     Secondary NameNode请求执行CheckPoint。
~~~     NameNode滚动正在写的Edits日志。
~~~     将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。
~~~     Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
~~~     生成新的镜像文件fsimage.chkpoint。
~~~     拷贝fsimage.chkpoint到NameNode。
~~~     NameNode将fsimage.chkpoint重新命名成fsimage。
三、Fsimage与Edits文件解析
###  --- Fsimage与Edits文件解析

~~~     NameNode在执行格式化之后,
~~~     会在/opt/yanqi/servers/hadoop-2.9.2/data/tmp/dfs/name/current目录下产生如下文件
~~~     # Fsimage文件:
~~~     是namenode中关于元数据的镜像,一般称为检查点,
~~~     这里包含了HDFS文件系统所有目录以及文件相关信息(Block数量,副本数量,权限等信息)
~~~     # Edits文件 :
~~~     存储了客户端对HDFS文件系统所有的更新操作记录,
~~~     Client对HDFS文件系统所有的更新操作都会被记录到Edits文件中(不包括查询操作)
~~~     # seen_txid:
~~~     该文件是保存了一个数字,数字对应着最后一个Edits文件名的数字
~~~     # VERSION:
~~~     该文件记录namenode的一些版本号信息,比如:CusterId,namespaceID等

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示