HDFS的工作方式
Hadoop Distributed File System(HDFS)是一种分布式文件系统,专为具有高故障容忍度和针对大数据集的流式数据访问而设计。以下是HDFS的一些关键工作方式和特点:
架构:
- HDFS采用主从架构,由一个NameNode和多个DataNode组成。
- NameNode:负责管理文件系统的元数据,比如目录结构、文件到块的映射、每个块的副本等。
- DataNode:负责存储实际数据块,并执行来自NameNode的读写请求。
数据存储:
- 在HDFS中,文件被分成固定大小的块(默认为128MB或64MB),并跨多个DataNode进行存储。
- 每个块有多个副本(默认情况下为3个),以确保高可用性和容错性。
故障检测和恢复:
- NameNode周期性地接收来自DataNode的心跳和块报告,从而监控DataNode的健康状况。
- 如果检测到DataNode故障,NameNode重新复制丢失的数据块到新的DataNode。
数据读写:
- 读取数据:客户端联系NameNode获取文件块的位置,然后直接从DataNode读取数据。
- 写入数据:客户端先联系NameNode创建文件,然后按照块大小依次写入DataNode。DataNode会将数据流式传输给其余的副本节点。
一致性模型:
- HDFS实现了"写入一次,多次读取"的模型。修改文件通常涉及至关闭原文件并创建一个新版本。
扩展性:
- HDFS能够扩展到数千个节点并支持PB级的数据存储。
- 通过增加DataNode,集群的存储容量和吞吐量可以线性增加。
优势与特点:
- 具有高吞吐量的数据访问和适合大规模数据处理的能力。
- 实现了数据本地化处理,尽可能让计算发生在存储数据的节点上。
通过提供一个具有高容错能力、轻松扩展、和管理简单的文件系统,HDFS已经成为处理大规模数据集的基础设施核心之一。