HDFS分布式文件系统学习总结

本文介绍了HDFS的主从结构,包括名称节点NN和数据节点DN的角色,以及NN的FSImage和EditLog数据结构。文章还详细描述了SecondaryNameNode如何协助NN进行元数据管理和故障恢复。此外,讨论了HDFS的通信协议、局限性、冗余保存策略和数据读取机制,以及错误检测和恢复的方法。

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

结构:主从结构(Master/slave)名称节点/数据节点;

缺点:不适合低延时数据访问;

无法高效存储大量小文件;

不支持并发写及任意修改文件;

NN:存储元数据;元数据保存在内存中;保存文件,block,DN之间的映射关系;

DN:存储文件内容;文件内容保存在磁盘中;维护block ID到DN本地文件的映射关系;

NN数据结构:

FSImage:用于维护文件系统树以及文件树中所有的文件和文件夹的元数据;

EditLog:录了所有针对文件的创建、删除、重命名等操作;

注释:FSImage中没有记录块存储在哪个数据节点。

NN启动:加载FSImage,执行EditLog;

SecondaryNN:合并FSImage、EditLog;

过程:1)SecondaryNameNode会定期和NameNode通信,请求其停止使用EditLog文件,暂时将新的写操作写到一个新的文件edit.new上来,这个操作是瞬间完成,上层写日志的函数完全感觉不到差别;
  (2)SecondaryNameNode通过HTTP GET方式从NameNode上获取到FsImage和EditLog文件,并下载到本地的相应目录下;
  (3)SecondaryNameNode将下载下来的FsImage载入到内存,然后一条一条地执行EditLog文件中的各项更新操作,使得内存中的FsImage保持最新;这个过程就是EditLog和FsImage文件合并;
  (4)SecondaryNameNode执行完(3)操作之后,会通过post方式将新的FsImage文件发送到NameNode节点上

  (5)NameNode将从SecondaryNameNode接收到的新的FsImage替换旧的FsImage文件,同时将edit.new替换EditLog文件,通过这个过程EditLog就变小了。

DN:负责保存数据和读取数据;

同性协议:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值