-
HDFS的设计目标
- 检测以及快速恢复硬件问题.
- 流式的数据访问.
- 移动计算比移动数据的代价小.
- 简化一致性模型.
- 超大规模数据集
- 异构软硬件平台之间的可移植性.
-
HDFS的结构模型
HDFS是一个主从的结构模型.一个HDFS集群是由一个NameNode和若干个DataNode组成.NameNode主节点是主服务器.管理文件系统的命名空间和和客户端对文件的访问操作.DataNode是集群中的一般节点.负责数据的存储.客户端通过NameNode
向DataNode节点交换访问文件系统.联系NameNode获取文件元数.文件I/O操作直接和NameCode进行交互.从数据的内部看文件被分为若干个数据块.典型数据块的大小为 64MB. 假设如果客户端要访问一个文件。首先,客户端从NameNode中获得
组成文件的数据块位置的列表,即知道数据块存储在哪些DateNode 中;然后客户端直接从DataNode上读取文件数据.NameNode不参与文件传输.NameNode 是HDFS的守护程序。主要负责大数据文件如何被分割成数据块。被分割后的数据块分别为存储在哪些DataNode的数据节点上.
NameNode负责维护文件系统的命名空间.任何对文件系统的名称空间或属性的修改都将被NameNode记录下来.
-
数据的复制与存放
HDFS是在大集群中跨机器可靠地存储超大文件. 他将每一个文件存储成一系列的数据块.
(1)数据的复制- 文件的所有的数据块都有副本,这样可以提高数据的容错性.应用程序可以指定某个文件的副本数量.HDFS中的文件都是一次性写入。并且在任何时候只有一个写入者.NameNode管理数据的复制,采用周期性的从集群中的每一个DataNode中接受心跳信号可块状报告。如果接受到心跳报告说明DataNde正常.
- 副本的存放是NDFS可靠性和性能的关键