Module 02 · Introduction to the Hadoop Ecosystem
HDFSHadoop 分布式文件系统
欢迎观看《Hadoop分布式文件系统(HDFS)》视频!通过观看此视频,您将能够:
- 解释 Hadoop 分布式文件系统及其重要概念
- 识别 HDFS 的关键特性
- 描述 HDFS 的架构
什么是 HDFS?
HDFS(Hadoop Distributed File System)是 Hadoop 的存储层。分布式文件系统允许文件存储在多个文件服务器上,并支持程序员从任何计算机或网络访问和存储文件。HDFS 通过将文件拆分为块,并在不同的机器上创建副本来存储数据。
HDFS 的工作原理
- HDFS 被设计用来无缝地访问 流数据,即在传输数据时提供恒定的比特率,而非波动性传输。
- HDFS 使用命令行接口与 Hadoop 进行交互。
HDFS 的关键特性
HDFS 具有以下关键特性:
- 低成本存储
HDFS 使用的商品硬件成本较低,能够有效减少存储开销。 - 大数据存储
HDFS 可以存储极大的数据量,甚至达到 PB(千兆字节)级别,支持表格和非表格数据格式。大数据被拆分为称为 块 的小部分进行存储。 - 容错性
HDFS 可以复制数据块,确保当硬件发生故障时,数据仍可从其他机器恢复。副本提供了数据丢失的备份。 - 高扩展性
HDFS 可以将一个集群扩展到数百个节点,具有极高的可扩展性。 - 可移植性
HDFS 设计上可以轻松地从一个平台迁移到另一个平台。
HDFS 的概念
了解 Hadoop 之前,您需要知道一些概念:
块(Block)
- 块 是 HDFS 中最小的可读写单位,提供了容错能力。根据系统配置,默认块大小可能是 64MB 或 128MB。
- 例如,如果我们有一个 500MB 的文件,默认块大小为 128MB,那么该文件将被拆分成 3 个 128MB 的块和 1 个 116MB 的块。
- 文件存储时,并不一定会占用预设的块大小,只要块足够存储即可。
节点(Node)
- 节点 是负责存储和处理数据的单个计算机系统。每个节点存储一部分数据。
- HDFS 遵循 主/从 架构,具有两种类型的节点:
- 主节点(NameNode):负责管理客户端的文件访问,分配和管理任务给从节点。
- 从节点(DataNode):存储实际的数据,并响应读写请求。
HDFS 架构
主节点与从节点

- 在 HDFS 中,有一个 主节点(NameNode) 和多个 从节点(DataNode)。
- 主节点 负责管理文件的操作,如打开、关闭、重命名文件,并将文件块映射到从节点。
- 从节点 负责响应客户端的读写请求,并根据主节点的指令执行文件块的创建、复制和删除操作。
机架意识(Rack Awareness)
- 机架(Rack) 是大约 40 到 50 个数据节点共享同一网络交换机的集合。机架意识的目的是减少网络流量并提高集群性能。
- 主节点会存储 机架 ID 信息,并确保数据的副本分布在不同的机架中。这样,如果某个机架发生故障,数据仍然可以从其他机架获得。
HDFS 的副本机制
副本(Replication)
- 副本 是创建数据块的备份。当出现故障时,副本提供数据块的备份。
- 副本因子(Replication Factor) 是定义数据块副本数量的参数。您可以根据配置设置副本数。
- 例如,假设我们有一个 500MB 的文件,副本因子为 2,每个数据块会有两个副本。最终,您将有 8 个副本作为备份。
副本优化
HDFS 使用 机架意识 来优化副本的存储,确保副本分布在不同机架上。这样可以提高数据可靠性,确保在机架故障时,仍然能够从其他机架获取数据。
HDFS 的读写操作
写一次,读多次
HDFS 支持 “写一次,读多次” 操作。这意味着,一旦文件被写入 HDFS,就无法修改,但可以向文件追加新数据。
读操作
- 客户端向 主节点(NameNode) 发送请求,获取包含数据块的从节点位置。
- 主节点验证客户端的访问权限,并提供数据块的位置。
- 客户端与最近的从节点通信,读取文件。
写操作
- 在写操作中,主节点验证客户端权限,检查文件是否存在。
- 如果文件已存在,客户端将收到 IO 异常。
- 如果文件不存在,客户端将收到写权限,并与从节点建立连接。
- 一旦客户端完成写入,数据节点开始创建副本,并向客户端发送确认。
总结
在本视频中,您学到了:
- HDFS 的关键优势:包括成本效益、可扩展性、数据存储扩展和数据副本能力。
- 块 是文件的最小单位。
- 副本 用于备份数据块,确保数据的可靠性。
- 机架意识 帮助减少网络流量并提高集群性能。
- HDFS 支持 写一次,读多次 的操作模式。
HDFS 是一个高效、可靠的分布式文件系统,能够在大数据环境中提供出色的存储和数据管理功能。