HDFS 的 NameNode工作机制

2026-02-23 03:58:35

理解NameNode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中“性能调优”

“NameNode”故障问题的分析解决能力

1.NameNode职责:

Hadoop集群中有两种节点,一种是NameNode,还有一种是DataNode;其中DataNode主要负责数据的存储,NameNode主

要负责三个功能,分别是;(1)管理元数据  (2)维护目录树 (3)响应客户请求

2.元数据管理:

NameNode对数据的管理采用了三种存储形式:

1.内存元数据(NameSystem)

    2.磁盘元数据镜像文件(fsImage)

    3.数据操作日志文件(可通过日志运算出元数据)

3.NameNode元数据管理机制

  首先介绍下,元数据格式:

4.CheckPoint操作的触发条件配置参数

dfs.namenode.checkpoint.check.period=60#检查触发条件是否满足的频率,60秒


dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary#以上两个参数做checkpoint操作时,secondary namenode的本地工作目录
dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}
dfs.namenode.checkpoint.max-retries=3#最大重试次数
dfs.namenode.checkpoint.period=3600#两次checkpoint之间的时间间隔3600秒
dfs.namenode.checkpoint.txns=1000000 #两次checkpoint之间最大的操作记录

5.总结:

5.1.元数据存储机制

A、内存中有一份完整的元数据(内存metadata)

  B、磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)

  C、用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件)

  注:当客户端对hdfs中的文件进行新增或者修改操作,操作记录首先被记入edits日志文件中,当客户端操作成功后,相应的元数据

会更新到内存metadata中

5.2.如果NameNode的硬盘损坏,元数据是否还能恢复,如果能恢复,该如何恢复?

  :可恢复绝大部分数据,NameNode和secondaryNamenode的工作目录存储结构完全相同,所以,当Namenode故障退出需要重新恢复时,

可以将SecondaryNamenode的工作目录拷贝到namenode的工作目录,以恢复namenode的元数据

5.3.如果NameNode宕机,hdfs服务能否正常提供?

  :不能,虽然SecondaryNamenode有元数据信息,但不能更新元数据,不能充当NameNode使用;

5.4.通过以上思考,我们在配置NameNode工作目录参数时,应该注意什么?

  :NameNode的工作目录应该配置在多块磁盘上,同时往多块磁盘上写日志,数据时相同的;

  :修改NameNode的配置文件:vi /usr/local/src/hadoop-2.6.4/etc/hadoop/hdfs-site.xml 

<property>


<name>dfs.name.dir</name>
<value>/disk1/name1,/disk2/name2</value>
</property>

:然后重新对NameNode format :hadoop namenode -format,会重新生成两个name1和name2目录

  :dfs.name.dir属性可以配置多个目录,各个目录存储的文件结构和内容完全相同,相当于备份,这样做的好处就是当其中

一个目录损坏了,也不会影响到Hadoop的元数据,

5.5.补充:该hdpdata/dfs/name/current/目录下的seen_txid文件:

  :该文件中记录的是edits滚动的序号,每次重启NnmeNode时,NnmeNode就知道该加载哪些edits(序号小的)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢