一.简介
HDFS【Hadoop Distributed File System】是Hadoop组件中的分布式存储系统,提供高可靠性、高扩展性和高吞吐率的数据存储服务。
二.存储模型
1.文件线性切割成块【Block】,块分散存储在集群的各个节点中。
2.单一文件Block大小一致,不同的文件可以设置的不一样。
3.Block可以设置副本数,副本分散在不同的节点【副本数不要超过节点数,这样副本设置才有意义】。
4.文件上传可以设置Block大小和副本数,已上传的文件Block副本数可以调整,大小不变。
5.只支持一次写入多次读取,同一时刻只有一个写入,可以追加数据。
三.架构模型
1.NameNode【主】节点保存文件元数据,DataNode节点保存文件Block数据。
2.DataNode和NameNode之间通过心跳确认各个节点的健康情况,以及是否需要重启节点。
3.HDFSClient与NameNode交互元数据信息,与DataNode交互文件Block数据【需先访问NameNode】。
四.NameNode【NN】
特点:
1.基于内存存储,不会和磁盘发生交换。
2.接受客户端的读写请求,收集DataNode汇报的Block列表信息。
3.保存metadata信息,包括:文件ownership和permissions、文件大小、时间、Block列表、Block偏移量、位置信息和Block副本位置【由DataNode上报】等。
持久化:
1.NameNode的metadata信息在启动后会加载到内存。
2.metadata存储到磁盘文件名称为"fsimage"。
3.Block的位置信息不会保存到fsimage。
4.edits记录对metadata的操作日志。