第3章 Hadoop分布式文件系统

当数据集足够大时,就有必要对它进行分区(partition)并存储到若干台单独的计算机上。管理网络中跨多台计算机存储的文件系统称为分布式文件系统(distributed filesystem)。

3.2.1 数据块
每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整倍数。

HDFS同样也有块(block)的概念,默认为128MB。HDFS上的文件也被划分为块大小的多个分块(chunk),作为独立的存储单元。而HDFS中小于一个块大小的文件不会占据整个块的空间。

分布式文件系统中的块进行抽象带来的好处:

  1. 一个文件的大小可以大于网络中任意一个磁盘的容量。文件的所有块并不需要存储在同一个磁盘上。
  2. 使用抽象块而非整个文件作为存储单元。简化存储管理、提供数据容错能力和提高可用性。

3.2.2 namenode和datanode
HDFS集群以管理节点-工作节点模式运行,即一个namenode(管理节点)和多个datanode(工作节点)。

namenode管理文件系统的命名空间。维护着文件系统树及整棵树内所有的文件和目录。
这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件编辑日志文件。namenode也记录着每个文件中各个块所在的数据节点信息。

datanode是文件系统的工作节点。它们根据需要存储并检索数块(受客户端或namenode调度),并定期向namenode发送它们所存储的块的列表。

你可能感兴趣的:(第3章 Hadoop分布式文件系统)