这是我参与「第四届青训营 」笔记创作活动的的第七天
一、本堂课重点内容:
- HDFS架构原理
- HDFS关键设计
- HDFS应用场景
二、详细知识点介绍:
HDFS架构原理
HDFS 采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。一个HDFS集群是由一个NameNode和一定数目的DataNode组成的。NameNode是一个中心服务器,负责管理文件系统的名字空间 (Namespace )及客户端对文件的访问。集群中的DataNode一般是一个节点运行一个DataNode进程,负责管理它所在节点上的存储。
特性:
- 高容错性:认为硬件总是不可靠的。
- 高吞吐量:为大量数据访问的应用提供高可用吞吐量支持。
- 大文件存储:支持存储TB-PB级别的数据。
HDFS关键设计
(1)硬件失效:
- 硬件的异常比软件的异常更加常见。
- 对于有上百台服务器的数据中心来说,认为总有服务器异常,硬件异常是常态。
- HDFS需要监测这些异常,并自动恢复数据。
(2)流式数据访问:
- 基于HDFS的应用仅采用流式方式读数据。
- 运行在HDFS上的应用并非以通用业务为目的的应用程序。
- 应用程序关注的是吞吐量,而非响应时间。
- 非POSIX标准接口的数据访问。
(3)存储数据大:
- 运行在HDFS的应用程序有较大的数据需要处理。
- 典型的文件大小为GP到TB级别。
(4)数据一致性:
- 应用程序采用WORM(Write Once Read Many)的数据读写模型。
- 文件仅支持追加,而不允许修改。
(5)多硬件平台:
- HDFS可运行在不同的硬件平台上。
(6)移动计算能力:
- 计算和存储能力采用就近原则,计算离数据最近。
- 就近原则将有效减少网络的负载,降低网络拥塞。
HDFS应用场景
HDFS是Hadoop技术框架中的分布式文件系统,对部署在多台独立物理机器上的文件进行管理。
可应用与以下几种场景:
- 网站用户行为数据存储。
- 生态系统数据存储。
- 气象数据存储。