基本原理
Block 块: HDFS的最小储存单位,块大小统一,便于统一管理。
但存在Block块丢失的问题,一个文件中的任意一个块丢失都会导致文件不可用。因此提出了HDFS的备份机制。
备份: 将一个块复制多份,放在不同的服务器上。安全性大大提升。
属性设置
配置文件中的设置
上传时的设置
副本数检查
单个块大小设置
NameNode对Block的管理
NameNode对Block的管理通过两类文件实现
-
edits文件:记录了HDFS的每一次操作,以及本次操作影响到的Block,为了避免超大的edits文件,因此此文件可能会有多个。
-
fsimage文件:全部的edits文件合并,合并为最终结果即为FSImage文件
-
管理流程
- 每次对HDFS的操作都会被edits记录下来
- 当一个edits文件过大时,会再开启一个新的edits文件
- 定期对edits文件进行合并,合并为FSImage。若FSImage不存在,那么创建一个,若存在则和之前的合并。
- 重复上述操作
元数据的合并由SecondaryNameNode进行
SecondaryNameNode会通过http从NameNode拉取数据(edits和fsimage),若不启动SecondaryNameNode会造成检索效率的下降,文件系统的卡顿。
HDFS数据读写流程
写入流程
读取流程