这是我参与「第四届青训营 」笔记创作活动的第3天,今天我们队主要对HDFS原理与应用这一课程做了复习与讨论。
重点学习内容 HDFS的设计与实现
一、HDFS基础知识 1)HDFS的基本介绍 Hadoop技术体系分为应用层,调度层,存储层三层。 2)常见的单机文件系统 Windows单机文件系统 Linux单机文件系统:BTRFS、ZFS、XFS、EXT4等等。 3)分布式文件系统的优点 大容量、高可靠、低成本。 4)分布式存储系统 对象存储、文件系统、块存储、数据库。 5)HDFS功能特性 分布式、容错、高可用、高吞吐、可扩展、廉价。
二、架构原理 HDFS三大组件 1)Client/SDK: Client基本共能:读、写。 2)NameNode:中枢节点。 元数据节点NameNode的功能:维护目录树、维护文件和数据块的关系、维护文件块存放节点信息、分配新文件存放点。 3)DateNode:用户数据实际存储。 数据节点DataNode功能:数据块存取、心跳汇报、副本复制。
三、关键设计 1、NameNode目录树维护 fsimage 1)文件系统目录树 2)完整的存放在内存中 3)定时存放在硬盘上 4)修改是只会修改内存中的目录树 EditLog 1)目录树的修改日志 2)client更新目录树需要持久化Editlog后才能表示更新成功 3)Editlog可存放在本地文件系统,也可存放在专用系统上 4)NameNode HA方案一个关键点就是如何实现EditLog共享
2、NameNode数据放置策略 关键点: 1)新数据存放到哪些节点 2)新数据均衡需要怎么合理搬迁数据 3)3个副本怎么合理放置
3、DataNode 1)数据块的硬盘存放:文件在DataNode已分割成block,DataNode以block为单位对数据进行存取。 2)启动扫盘:DataNode需要知道本机存放了哪些数据块,启动时把本机硬盘上的数据块列表加载在内存中。
4、HDFS写异常处理(不同的场景不同的处理方式): 1)Lease Recovery 2)Pipeline Recovery
5、Client读异常处理: 节点Failover
四、延伸 1、旁路系统 Balancer:均衡DataNode的容量 Mover:确保副本放置符合策略要求 2、控制面建设 1)可观测性设施 2)运维体系建设
五、应用场景 略
六、总结 该课程从总体上介绍了HDFS系统的相关设计与实现,这为我们队项目实施起到了指导作用。