HDFS体系结构
1.HDFS设计理念
1)低成本:兼容廉价的硬件设备
2)处理大规模数据:典型文件大小GB-TB级别;关注横向扩展。
3)批量数据访问:批量读而非随机读;关注吞吐量而非响应时间。
4)高容错:副本冗余机制。
5)适应场景:大文件访问;静态数据访问。
6)不适合的场景:存储大量小文件;随机读取,低延迟读取。
2.HDFS体系结构
HDFS由一个Namenode、 个 Secondary NameNode、 若干Datanodes和Client组成,采用主从结构,存储的基本单位是块。
如果把HDFS比作一-本 书,Namenode存储的则是书的目录,Datanode 存储的就是书的正文内容,-章是一一个文件,-节是一个块,目录称为元数据,目录指明的各章节页码称为映射,用户访问数据,首先要访问Namenode。
(1)块(基本操作单位)
- HDFS把一个文件被分成多个块,以块作为存储单位,默认一个块为64~ 128MB。
- HDFS采用抽象的块概念可以带来以下几个明显的好处:支持大规模文件存储;简化系统设计;适合数据备份。
(2) NameNode (主节点)
1)存储元数据:文件、块与DataNode之间的映射。
2)元数据保存在内存。 - NameNode 由Fsmge. EdiL.g 两个文件组成。Fsmage 保存文件、块的目录结构; EditLog 保存对文件、块的操作,如创建、删除等。
4)在NameNode统调度 下进行数据块的创建、删除和复制等操作。
(3) DataNode (从节点)
1)存储文件内容。
2)文件内容保存在磁盘上。
3)维护Block ID到DateNode本地文件的映射关系。
4)向名称节点定期发送自己所存储的块的列表(心跳)。