NameNode和SecondaryNameNode

本文详细解析Hadoop中NameNode的工作机制,包括元数据管理、Fsimage与Edits文件的作用,SecondaryNameNode如何协助管理,以及NameNode故障恢复流程。深入理解Hadoop文件系统的核心组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、元数据几点:

(1)元数据必须放在内存中(保证快速检索);

(2)元数据必须持久化(保证数据的安全持久);

(3)将元数据信息保存在fsimage镜像文件中。

2、Fsimage文件

(1)保存元数据信息的文件;

(2)是NameNode中关于元数据的镜像,一般称为检查点;

(3)包含了NameNode管理下的所有DataNode中文件及文件block及block所在的DataNode的元数据信息。

3、Edits文件

edits编辑日志文件记录了客户端操作元数据的信息。

4、NameNode工作机制

(1)第一次启动NameNode格式化后,创建fsimage镜像文件和edits编辑日志文件。(如果不是第一次启动,则直接加载fsiamge镜像文件和edits日志文件到内存);

(2)客户端对元数据进行增删改的请求;

(3)NameNode记录操作日志,更新滚动日志;

(4)NameNode在内存中对数据进行增删改查操作。

5、secondaryNameNode工作机制

(1)secondaryNameNode询问NameNode是否需要checkpoint,直接带回NameNode是否checkpoint的结果;

(2)secondaryNameNode请求执行checkpoint;

(3)NameNode滚动正在写的edits日志(滚动后为edits_inprogress_002);

(4)将滚动前的edits日志文件(edits_001)和fsimage镜像文件拷贝到secondaryNameNode;

(5)secondaryNameNode加载edits日志文件(edits_001)和fsimage文件到内存,并合并;

(6)生成新的镜像文件fsimage.chkpoint;

(7)拷贝fsimage.chkpoint到NameNode;

(8)NameNode将fsimage.chkpoint重新命名成fsimage。

6、seondarynameNode辅助管理FSImage与Edits文件

(1)secondaryNameNode通知NameNode切换editslog;

(2)secondaryNameNode从NameNode中获得fsimage文件和edits文件(通过http get方式);

(3)secondaryNameNode将fsimage载入内存,再合并editslog文件,合并后生成新的fsimage文件;

(4)secondaryNameNode通过http post方式将新的fsimage拷贝给NameNode;

(5)NameNode用新的fsimage替换旧的fsimage,把edits.new替换成edits,同时更新fstime。

说明:完成合并的是secondaryNameNode,会请求NameNode停止使用edits,暂时将新写操作放入一个新的edits.new文件中。

7、namenode故障恢复

如果namenode的fsimage与edits文件损坏,那么我们可以将secondaryNamenode当中的fsimage与edits拷贝过去给namenode继续使用,只不过有可能会丢失一部分数据。

(1)杀死NameNode进程

  1. 先使用jps查看NameNode进程号;
  2. 采用kill -9 进程号   ----强制杀死进程

(2)删除NameNode的fsimage和edits文件

输入rm -rf命令,分别删除fsimage文件和edits文件

(3)拷贝secondaryNameNode的fsimage和edits文件到NameNode的fsimage和edits文件夹下去、

输入命令cp -r secondaryNameNode目录 NameNode目录

(4)启动NameNode

输入命令cd hadoop-2.6.0-cdh5.14.2/sbin/hadoop-daemon.sh start namenode

(5)浏览器页面正常访问

http://node01:50070/explorer.html#/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值