这是我参与「第四届青训营 」笔记创作活动的第9天
课堂笔记
一、本堂课重点内容:
- HDFS基本介绍
- HDFS架构原理
- 关键设计
- 应用场景
二、详细知识点介绍:
1.分布式文件系统基本介绍
我们平时用的个人PC机windows自带的文件系统是单机版的,只控制用户个人电脑的文件,而在企业里有大量的文件数据,一台电脑存储不下,就得考虑用多台机器存储,而想要对多台机器上的文件系统统一管理就产生了分布式文件系统。其具有有大容量、高可靠、低成本的特点。
2.分布式文件系统典型代表HDFS
HDFS的开源框架Hadoop的一个组件,负责分布式文件的存储管理,全称是Hadoop Distributed File System. 其具有如下特点:
- 分布式:受GFS启发,可以统一管理分布在不同机器上的数据
- 高吞吐:Client直接从DataNode读取数据,服务端支持海量Client并发读写
- 容错:能自动处理各种错误情况,如网络错误,服务器宕机
- 高可用:一主多备实现元数据高可用,数据多副本实现用户数据高可用
- 可扩展:DataNode节点可扩展,且支持联邦集群模式,DataNode数量可达10万级别
- 廉价:服务器存储数据只需要廉价的集群即可,对服务器性能没有过高要求
3.HDFS架构原理详解
HDFS主要分为client、NameNode、DataNode三种组件构成
- NameNode:用于存储元数据(描述数据的数据),对外提供元数据和数据服务;细分功能为:维护目录树、维护文件和数据块的关系、维护文件快存储节点信息、分配新文件存放节点
- DataNode:用于实际存储数据。细分功能为:数据块存取,心跳汇报,副本复制
- client:主要用于接收用户请求,并与NameNode,DataNode交互完成用户请求
4.NameNode目录树设计
元数据是存储在内存中的,一旦关机,内存中的数据就会丢失,所以需要一定机制对内存中数据作落盘备份。
- fsimage:主要是保存内存中的目录树
- editlog:为了防止宕机导致内存中的NameNode元数据丢失,在更新内存目录树之前会先追加此处操作日志进入editlog中
5.应用场景
使用HDFS的公司
四、课后个人总结:
通过本节课对HDFS分布式文件系统有了初步了解,并了解了其异常解决方案和实际应用场景