HDFS原理与应用
这是我参与「第四届青训营 」笔记创作活动的第3天
HDFS 基础介绍
HDFS:Hadoop Distributed File System
文件系统
- 单机文件系统:常见的如Windows NTFS,Linux的Ext4,虽然不同的操作系统和实现,但是本质都是一样的,解决相同的问题。
- 分布式文件系统:本质上扩展、延伸了单机文件系统,提供了大容量(多个设备)、高可靠(多个副本)、低成本等功能特性;实现上一般也更为复杂。
HDFS 的功能特性
HDFS 的架构原理
组件 —— 三大件
Client
Client/SDK:读写操作的发起点,HDFS很多读写逻辑都是在SDK中实现的。
无论读写都需要向NameNode发送请求!
1. 写流程
1. 先向NameNode请求写入位置
2. 写入相应的DataNode
2. 读流程
1. 先向NameNode请求位置
2. 读取相应的DataNode
NameNode
NameNode:元数据节点,是HDFS的中枢节点,也是服务的入口。
非常重要!
DataNode
DataNode:数据节点,存放实际用户数据。—— 一般会有3个副本
心跳汇报:向NameNode汇报节点处于正常存活状态
关键设计
分布式存储系统
NameNode 目录树
NameNode 数据放置
DataNode
以block为单位进行数据存取
HDFS 异常处理
写异常处理(client异常):Lease Recovery
写异常处理(DataNode异常):Pipeline Recovery
HDFS 读异常
更换另一个副本进行读取