Hadoop中NN和2NN工作机制


前言

一、为什么需要2nn?

hdfs的元数据信息存储在NameNode中,每次对hdfs的文件进行操作,那么将会不断地访问元数据信息,如果全放内存或者全放磁盘有如下缺点
在这里插入图片描述
因此要将元数据信息备份在在磁盘里,生成fsimage镜像文件

如果每次对元数据的操作都要同步到fsimage(磁盘)中,则和原来没什么两样,同样的效率低下,因此引入edits文件,只对该文件做追加操作,追加操作元数据的信息,即使集群在使用的过程中发生了故障,启动时是需要将镜像文件和edits文件合并进入内存中即可恢复,同时不会产生读写过慢的现象。

在合并fsimage和edits文件是,如果使用NN去合并,可能会造成NN效率低下,因此专门引入2NN,来合并这两个文件,提高集群的工作效率。

流程图

在这里插入图片描述

注意

1.通常情况下,SecondaryNameNode每隔一小时执行一次。

[hdfs-default.xml]
 
<property>
 
  <name>dfs.namenode.checkpoint.period</name>
 
  <value>3600s</value>
 
</property>

2.一分钟检查一次操作次数,3当操作次数达到1百万时,SecondaryNameNode执行一次。

<property>
 
  <name>dfs.namenode.checkpoint.txns</name>
 
  <value>1000000</value>
 
<description>操作动作次数</description>
 
</property>
 
 
 
<property>
 
  <name>dfs.namenode.checkpoint.check.period</name>
 
  <value>60s</value>
 
<description> 1分钟检查一次操作次数</description>
 
</property >

fsimage和edits

文件位置:
/opt/module/hadoop-3.3.1/data/dfs/name/current
(1) Fsimage文件:hdfs文件元数据的一个永久性的检查点,其中包含hdfs文件系统的所有目录和文件inode的序列化信息。
(2)edits文件:存放hdfs文件系统的所有更新操作,文件系统客户端执行的所有写操作首先会被记录到edits文件中
(3)seen_txid文件保存的是一个数字,就是edits_的数字

查看fsimage文件

hdfs oiv 查看镜像文件
hdfs oiv -p XML -i fsimage_0000000000000000530 -o /home//howey/fsimage.xml
下载到桌面
sz /home//howey/fsimage.xml
hdfs oev查看edits文件
hdfs oiv -p 查看文件类型 -i 镜像文件 -o转换后文件的输出的文件
hdfs oev -p XML -i edits_0000000000000000105-0000000000000000453 -o /home//howey/edits_105.xml
下次开机启动如何确定和并哪些edits?
在这里插入图片描述
合并大于镜像文件编号后面的edits文件
2nn和nn相差edits_inprogress文件数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值