一.简述HDFS架构
HDFS是Hadoop分布式文件系统, 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode.
HDFS架构图
二.HDFS架构中的角色
1.HDFS Client:客户端
a.文件切分
文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。
b.操作文件系统
读/写/修改元数据。与 NameNode 交互,获取文件的位置信息; 与 DataNode 交互,读取或者写入数据。
2.NameNode:Master, 管理文件系统的命名空间,存储文件和目录的元数据,响应客户端的请求
a.元数据以两种方式在NameNode本地进行持久化
(1)fsimage:命名空间镜像文件
(2)edits log:编辑日志
b.元数据存储信息:
(1) 文件名称
(2) 文件的block副本个数
(3) 修改和访问的时间
(4) 访问权限
(5) block大小以及组成文件的block信息
其中,block的DataNode位置信息不会记录到fsimage, 这些信息在每次系统启动的时候从DataNode重建。之后DataNode会周期性地通过心跳包向NameNode报告block信息。
3. DataNode:Slave, 存储block信息,执行block的读/写操作。NameNode 下达命令,DataNode 执行实际的操作。
DataNode存储模型:
(1) 文件按字节线性切割成块(blo