Namenode 服务器的磁盘故障导致 namenode 宕机,如何挽救集群及数据?

本文深入探讨Hadoop中NameNode如何通过内存和磁盘存储管理元数据,包括目录树结构、文件数据块映射及副本位置信息。解析fsimage镜像文件与edits日志文件的作用,以及它们如何共同维护元数据的一致性和完整性。

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

NameNode 对数据的管理采用了两种存储形式:内存和磁盘
首先是内存中存储了一份完整的元数据,包括目录树结构,以及文件和数据块和副本存储地
的映射关系;
1、内存元数据 metadata(全部存在内存中)
其次是在磁盘中也存储了一份完整的元数据。有三种格式:
2、磁盘元数据镜像文件
fsimage_0000000000000000666
fsimage_0000000000000000666

等价于

edits_0000000000000000001-0000000000000000018
……
edits_0000000000000000444-0000000000000000666
合并之和

3、数据历史操作日志文件 edits:edits_0000000000000000001-0000000000000000018
(可通过日志运算出元数据,全部存在磁盘中)

4、数据预写操作日志文件 edits_inprogress_0000000000000000667
(存储在磁盘中)
数据=最新的镜像文件加上预写的操作日志文件=历史操作日志文件加上预写的操作日志文件
metadata = 最新 fsimage_0000000000000000666 + edits_inprogress_0000000000000000667
metadata = 所有的 edits 之和(edits_001_002 + …… + edits_444_666 + edits_inprogress_667

预写日志文件写的过程是类似于事务操作
是对数据文件的修改必须是只能发生在这些修改已经记录了日志之后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值