技术细节
一、HDFS的架构图
二、Block
- 数据块(Block)是HDFS中数据的最基本的存储单位
- 当在HDFS上存储超大文件时,HDFS会以一个标准将文件切分成几块,分别存储到不同的节点上,切出的数据就称为Block
- Block 默认的大小在Hadoop1.0中是64M,在Hadoop2.0中是128M
- 切块的优点:
- 文件块可以保存在不同的节点上,能够存储超大2文件
- 有利于数据的复制,便于快速备份
- 在HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
- HDFS会对每一个块分配一个递增的编号 -BlockID
三、NameNode
- NameNode用于存储元数据(metadata),管理DataNode节点
- NameNode会将管理的数据块信息放入数据块池(Block Pool)中
- NameNode维护HDFS中的元数据信息:
- 文件的存储路径
- 文件的权限:默认谁上传,谁有修改的权限
- 文件和Block之间关系的信息(文件大小和Block大小)及每一个文件的副本数量
- Block数量信息
- Block和DataNode之间的关系信息
- 元数据格式参照:FileName replicas block-Ids id2host。例如: /test/a.log,3,{b1,b2},[{b1:[h0,h1,h3]},{b2:[h0,h2,