HDFS:分布式文件系统,存储、管理文件,by统一的命名空间(目录树),服务器集群中的各个节点都有自己的职责。
- 物理分块存储(可设置block)
- 提供client统一目录树,by路径访问文件
- 目录结构和分块信息(元数据),namenode管理,主节点,维护集群目录树和每个路径下的文件对应数据块信息(blockid,存哪个datanode)
- Datanode管理文件快,从节点,每一个block可 在多个datanode存储副本(可设置)
- Datanode定期向namenode汇报文件block信息,client访问文件都是向namenode请求。
- 一次写入 ,多次读出,不修改,
HDFS写数据分析
- Client请求上传
- Namanode返回是否可以上传
- Client请求第一个block传到哪个DN
- Namenode返回DN服务器
- Client请求DN中的其中一台上传(rpc pipeline)
- Client上传block
- 在请求上传第二个block
HSFS读数据分析:
- client发送读请求
- Namenode查看元信息,返回file的block位置
- 先读block1,在block2 .....
HDFS删除数据:1向namenode请求删除文件2查元信息,向DN请求3DN删file返回结果4NN返回给client
NN管理元数据:1,内存元数据(namenode正在使用的元数据) 2,磁盘元数据镜像文件(内存元数据的镜像,NN宕机,恢复) 3,数据操作日志文件(记录元数据操作的,还原元数据)
checkpoint机制分析
secondarynamenode分担NN压力,隔段时间,namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge
1,NN向SNN请求合并editslog到fsimage
2,SNN收到求情去读取editslog,fsimage
3,editslog合并到fsimage。形成最新的fsimage文件