HDFS

发布时间 2023-06-26 08:33:39作者: DataHut

分布式文件系统 HDFS

HDFS (Hadoop Distributed File System) 是 Apache Hadoop 项目基于 Google GFS 论文的开源实现。

HDFS 简介

HDFS 要实现以下目标:

  • 兼容廉价的硬件设备
  • 流数据读写
  • 大数据集
  • 简单的文件模型
  • 强大的跨平台兼容性

由于 HDFS 特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用局限性:

  • 不适合低延迟数据访问
  • 无法高效存储大量小文件
  • 不支持多用户写入及任意修改文件

HDFS 体系结构

HDFS采用了主从 (Master/Slave) 结构模型,一个 HDFS 集群包括一个名称节点 (NameNode) 和若干个数据节点 (DataNode)。

HDFS体系结构

其中,名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。
集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。

HDFS 命名空间管理

HDFS 概念详解

HDFS 使用 作为存储单位,一个文件被分成多个块,默认的块大小为 64MB。块的大小远远大于普通文件系统,可以最小化寻址开销

HDFS采用抽象的块概念可以带来以下几个明显的好处:

-支持大规模文件存储:文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量

-简化系统设计:首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据

-适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性