Ever tried , Ever failed !
No matter ,Try again ! Fail again , Fail better !

HDFS 原理解析(二)

NameNode 工作机制

一、NameNode工作职责

1.响应客户端请求(读写)

2.元数据管理(元数据三类重要信息)

  • 第一类是文件和目录的属性信息,例如文件名、目录名、父目录信息、文件大小、创建时间、修改时间等。
  • 第二类记录文件内容存储相关信息,例如文件分块情况、副本个数、每个副本所在的DataNode信息等。
  • 第三类用来记录HDFS中所有DataNode的信息,用于DataNode管理。

二、NameNode元数据管理

1.管理方式:

当客户端对 HDFS 中的文件进行新增或者修改操作,操作记录首先被记入 editslog 中,当客户端操作成功后,相应的元数据会更新到内存 Metadata 中。


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

保存在NameNode工作目录中,是一个“准完整”的元数据镜像(不包含block位置信息)

block位置信息存储在内存中,这些位置信息是,在 DataNode加入集群的时候,NameNode询问DataNode得到的,并且不断更新。

主要作用:在NameNode宕机时,能够快速恢复元数据

计算公式:

fsimage = 所有 edits_xxx-edits_xxx 之和

(2)数据操作日志文件(editslog)

用来记录元数据操作,每次改动元数据时都会追加日志记录,若有完整的日志就可以还原完整的元数据。

主要作用:完善fsimage,减少fsimage和内存元数据的差距

计算公式:

editslog = 所有 edits_xxx-edits_xxx 之和+edits_inprogress

(3)内存元数据 Metadata

当前NameNode正在使用的元数据,存储在内存中

计算公式:

Metadata = 最新 fsimage + edits_inprogress
或
Metadata = 所有的 edits 之和
2.元数据的 CheckPoint 机制

每隔一段时间,会由 SecondaryNameNode 将 NameNode 上积累的所有 edits 和一个最新的 fsimage 下载到本地,并加载到内存进行 merge,这个过程称为 checkpoint。保证NameNode和SecondaryNameNode之间的元数据镜像差距始终保持在范围很小的差距

元数据的 CheckPoint 文字详解:

(1)SecondaryNameNode 定期请求 NameNode 是否需要 checkpoint

(2)如果得到应答,NameNode 会滚动当前的日志 edits.inprogress

(3)SecondaryNameNode 下载所有edits文件和fsimage

(4)SecondaryNameNode 会将两者加载到内存合并

(5)dump成新的image文件(新生成的文件名为 fsimage.checkpoint)

(6)通过 http 服务重新上传到 NameNode 中

(7)通过 RPC 调用把文件改名为 fsimage

3. CheckPoint 触发条件

时间

# 参数,两次checkpoint的时间间隔,默认1小时
dfs.namenode.checkpoint.period=3600

未 checkpoint 日志记录数

# 参数,两次checkpoint之间最大的操作记录,默认100万
dfs.namenode.checkpoint.txns=1000000
4.CheckPoint 附带作用

当NameNode磁盘故障导致NameNode突然宕机,如何挽救集群和数据?

​ 将SecondaryNameNode 的工作目录中拷贝到 NameNode 节点,作为 NameNode 的工作目录,因为NameNode 和 SecondaryNameNode 的工作目录存储结构完全相同

DataNode 工作机制

1.DataNode 工作职责
  • 存储管理用户的文件块数据
  • 定期向 NameNode 汇报自身所持有的 block 信息
2.观察验证 DataNode 功能
 block 具体的物理存放地址:${dfs.datanode.data.dir}/current/BP-***/current/finalized

数据块报告的间隔时间:默认21600000ms,即6小时

由 hdfs-default.xml中参数 dfs.blockreport.intervalMsec 控制

SecondaryNameNode 工作机制

元数据的 CheckPoint 机制(详情请见上文)

赞(1) 打赏
未经允许不得转载:Mr. Almost的个人博客 » HDFS 原理解析(二)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

谢谢老板~

支付宝扫一扫打赏

微信扫一扫打赏