HDFS原理与应用笔记 | 青训营笔记

167 阅读1分钟

HDFS原理与应用

这是我参与「第四届青训营 」笔记创作活动的第3天

HDFS 基础介绍

HDFS:Hadoop Distributed File System

image.png

文件系统

  • 单机文件系统:常见的如Windows NTFS,Linux的Ext4,虽然不同的操作系统和实现,但是本质都是一样的,解决相同的问题。
  • 分布式文件系统:本质上扩展、延伸了单机文件系统,提供了大容量(多个设备)、高可靠(多个副本)、低成本等功能特性;实现上一般也更为复杂。

HDFS 的功能特性

image.png

HDFS 的架构原理

组件 —— 三大件

image.png

Client

Client/SDK:读写操作的发起点,HDFS很多读写逻辑都是在SDK中实现的。

无论读写都需要向NameNode发送请求

1. 写流程

image.png

1. 先向NameNode请求写入位置
2. 写入相应的DataNode

2. 读流程

image.png

1. 先向NameNode请求位置
2. 读取相应的DataNode

NameNode

NameNode:元数据节点,是HDFS的中枢节点,也是服务的入口。

非常重要!

image.png

DataNode

DataNode:数据节点,存放实际用户数据。—— 一般会有3个副本

image.png

 心跳汇报:向NameNode汇报节点处于正常存活状态
 

关键设计

分布式存储系统

image.png

NameNode 目录树

image.png

NameNode 数据放置

image.png

DataNode

image.png

以block为单位进行数据存取

HDFS 异常处理

写异常处理(client异常):Lease Recovery

image.png

写异常处理(DataNode异常):Pipeline Recovery

image.png

HDFS 读异常

image.png

更换另一个副本进行读取

运行时积累恶化的问题 —— 旁路系统

image.png

image.png

应用场景

image.png

image.png