HDFS
的工作原理
Hadoop
分布式文件系统
(HDFS)
是一种被设计成适合运行在通用硬件上的分布式文件系统。
HDFS
是一个高度容错性的系统,
适合部署在廉价的
机器上。
它能提供高吞吐量的数据访问,
非常适合大规模数据集上的应用。要理解
HDFS
的内部工作原理,首先要理解什么是分布式
文件系统。
1
、分布式文件系统
多台计算机联网协同工作
(
有时也称为一个集群
)
就像单台系统一样解决某种问题,这样的系
统我们称之为分布式系统。
分布式文件系统是分布式系统的一个子集,
它们解决的问题就是数据存储。
换句话说,
它们
是横跨在多台计算机上的存储系统。
存储在分布式文件系统上的数据自动分布在不同的节点
上。
分布式文件系统在大数据时代有着广泛的应用前景,
它们为存储和处理来自网络和其它地方
的超大规模数据提供所需的扩展能力。
2
、分离元数据和数据:
NameNode
和
DataNode
存储到文件系统中的每个文件都有相关联的元数据。
元数据包括了文件名、
i
节点
(inode)
数、
数据块位置等,而数据则是文件的实际内容。
在传统的文件系统里,
因为文件系统不会跨越多台机器,
元数据和数据存储在同一台机器上。
为了构建一个分布式文件系统,
让客户端在这种系统中使用简单,
并且不需要知道其他客户
端的活动,那么元数据需要在客户端以外维护。
HDFS
的设计理念是拿出一台或多台机器来
保存元数据,并让剩下的机器来保存文件的内容。
NameNode
和
DataNode
是
HDFS
的两个主要组件。其中,元数据存储在
NameNode
上,而
数据存储在
DataNode
的集群上。
NameNode
不仅要管理存储在
HDFS
上内容的元数据,而
且要记录一些事情,
比如哪些节点是集群的一部分,
某个文件有几份副本等。