大数据HDFS学习(二)
辛苦整理,未经允许,严禁转载!
HDFS不重视代码,着重于理解。
1.概述
- HDFS需要有一个节点来负责管理,有多个节点来负责存储–HDFS结构是一个典型的主从结构
- 负责管理的节点称之为NameNode,负责存储的节点称之为DataNode
- 在HDFS中,存储数据的时候,会将数据进行切分,切出多个数据块放到多个节点上
- HDFS会自动的对数据块进行备份,每一个备份称之为一个副本(replicarion),在HDFS转给你,如果不指定则默认的副本数量为3.
2.Block
我们在存放数据中,会对数据进行切块,在大数据中,使用到的则是Block,表示切的数据块。
- 在HDFS中,数据是以Block的形式来存储,即每一个DataNode上会存储多个Block
- 当文件向HDFS中放入的时候,会自动的切成一个或多个Block
- 在Hadoop2.0中,每一个Block的大小默认为128M(通过dfs.blocksize来调节大小,这个属性的默认单位是字节,并且要求设置的时候是1024的整数倍)
- 如果一个文件不足128M,则这个文件整个作为Block进行存储,并且这个块Block的大小和文件大小是一样的
- 在HDFS中,会自动对Block进行编号
- 切块的意义:
a.为了能够存储超大的文件
b.为了能够进行快速的备份
3.NameNode(HDFS中的主节点)
-
NameNode是HDFS的主节点,负责管理DataNode和记录元数据(metadata)
-
元数据主要包含:
a.文件的存储路径
b.文件大小
c.Block的大小
d.副本数量
e.记录BlockID
f.Block和DataNode的映射关系
g.文件的权限 -
NameNode会将元数据存储在内存以及磁盘上
-
NameNode将元数据记录在内存中的目的是为了查询快
-
NameNode将元数据记录在磁盘中的