本次分享结合Maneesh Varshney的漫画改编,为大家分析HDFS存储机制与运行原理。


一、角色出演

640?wxfmt=jpeg&tp=webp&wxfrom=5&wx_lazy=

如上图所示,HDFS存储相关角色与功能如下:

Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写。

Namenode:元数据节点,是系统唯一的管理者。负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等。

Datanode:数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等。

二、写入数据

1、发送写数据请求

640?wxfmt=jpeg&tp=webp&wxfrom=5&wx_lazy=
HDFS中的存储单元是block。文件通常被分成64或128M一块的数据块进行存储。与普通文件系统不同的是,在HDFS中,如果一个文件大小小于一个数据块的大小,它是不需要占用整个数据块的存储空间的。

2、文件切分

640?wxfmt=jpeg&tp=webp&wxfrom=5&wx_lazy=
3、DN分配