HDFS之namenode管理元数据机制及一些问题

简介: HDFS之namenode管理元数据机制及一些问题

一、NameNode启动时如何维护元数据:


1、概念介绍:

Edits文件:NameNode在本地操作hdfs系统的文件都会保存在Edits日志文件中。也就是说当文件系统中的任何元数据产生操作时,都会记录在Edits日志文件中。eg:在HDFS上创建一个文件,NameNode就会在Edits中插入一条记录。同样如果修改或者删除等操作,也会在Edits日志文件中新增一条数据。

FsImage映像文件:包括数据块到文件的映射,文件的属性等等,都存储在一个称为FsImage的文件中,这个文件也是放在NameNode所在的文件系统中。


2、流程介绍:


①、加载fsimage映像文件到内存

②、加载edits文件到内存

③、在内存将fsimage映像文件和edits文件进行合并

④、将合并后的文件写入到fsimage中

⑤、清空原先edits中的数据,使用一个空的edits文件进行正常操作


3、流程图分析:


image.png


4、疑问

因为NameNode只有在启动的阶段才合并fsimage和edits,那么如果运行时间长了,edits文件可能会越来越大,在下一次启动NameNode时会花很长的时间,请问能否让fsimage映像文件和edits日志文件定期合并呢?

答案肯定是可以的,为了解决这个问题我们就要用到Secondary NameNode了,Secondary NameNode主要的作用是什么呢?他是如何将fsimage和edits进行合并的呢?带着疑问再次进行分析。

二、Secondary NameNode工作流程:

1、Secondary NameNode和NameNode的区别:

NameNode:

①、存储文件的metadata,运行时所有数据都保存在内存中,这个的HDFS可存储的文件受限于NameNode的内存。

②、NameNode失效则整个HDFS都失效了,所以要保证NameNode的可用性。

Secondary NameNode:

①、定时与NameNode进行同步,定期的将fsimage映像文件和Edits日志文件进行合并,并将合并后的传入给NameNode,替换其镜像,并清空编辑日志。如果NameNode失效,需要手动的将其设置成主机。

②、Secondary NameNode保存最新检查点的目录和NameNode的目录结构相同。所以NameNode可以在需要的时候应用Secondary NameNode上的检查点镜像。

2、什么时候checkpoint

①、连续两次的检查点最大时间间隔,默认是3600秒,可以通过配置“fs.checkpoint.period”进行修改

②、Edits日志文件的最大值,如果超过这个值就会进行合并即使不到1小时也会进行合并。可以通过“fs.checkpoint.size”来配置,默认是64M;

3、Secondary NameNode的工作流程

①、NameNode通知Secondary NameNode进行checkpoint。

②、Secondary NameNode通知NameNode切换edits日志文件,使用一个空的。

③、Secondary NameNode通过Http获取NmaeNode上的fsimage映像文件(只在第一次的时候)和切换前的edits日志文件。

④、Secondary NameNode在内容中合并fsimage和Edits文件。

⑤、Secondary NameNode将合并之后的fsimage文件发送给NameNode。

⑥、NameNode用Secondary NameNode 传来的fsImage文件替换原先的fsImage文件。


4、流程图分析:


image.png


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 分布式计算 Hadoop
NameNode和DataNode在HDFS中的作用是什么?
NameNode和DataNode在HDFS中的作用是什么?
134 0
|
4月前
|
存储 分布式计算 Hadoop
Hadoop的Secondary NameNode在HDFS中的作用是什么?
Hadoop的Secondary NameNode在HDFS中的作用是什么?
40 0
|
4月前
|
存储 分布式计算 Hadoop
HDFS中的NameNode和DataNode的作用是什么?它们之间的通信方式是什么?
HDFS中的NameNode和DataNode的作用是什么?它们之间的通信方式是什么?
102 0
|
存储 分布式计算 资源调度
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
Hadoop运行模式(三)、群起集群、配置workers、启动集群、启动HDFS、拼接、Web端查看HDFS的NameNode、Web端查看YARN的ResourceManager
|
8月前
|
机器学习/深度学习 存储 分布式计算
HDFS Namenode HA高可用搭建
HDFS Namenode HA高可用搭建
121 1
|
8月前
|
存储 分布式计算 Hadoop
HDFS Namenode挂掉后分析解决
HDFS Namenode挂掉后分析解决
171 1
|
9月前
|
机器学习/深度学习 缓存 分布式计算
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
Hadoop基础学习---4、HDFS写、读数据流程、NameNode和SecondaryNameNode、DataNode
|
11月前
|
存储 大数据
大数据数据存储的分布式文件系统的HDFS的基本概念和架构的基本架构的NameNode
在 Hdfs 中,NameNode 是一个非常重要的组件,它负责管理整个集群的文件系统命名空间。
66 0
|
Java
hdfs 故障服务namenode 报错GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=
hdfs生产故障 GC pool 'ConcurrentMarkSweep' had collection(s): count=1 time=
1800 0
|
分布式计算 Hadoop
hdfs集群安装(单namenode和HA模式)
本文介绍hdfs集群安装(单namenode和HA模式)指南
hdfs集群安装(单namenode和HA模式)