02 Hadoop分布式文件系统-HDFS
HDFS是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的;可以运行于廉价的商用服务器上,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,为超大数据集的应用处理带来了很多便利。
一、HDFS原理
Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)被设计成适合运行在通用硬件上的分布式文件系统。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上
HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用
HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的
HDFS是Apache Hadoop Core项目的核心部分
HDFS特点:
- 高容错性、可构建在廉价机器上
- 适合批处理
- 适合大数据处理
- 流式文件访问
HDFS局限:
- 不支持低延迟访问
- 不适合小文件存储
- 不支持并发写入
- 不支持修改
1. HDFS的假设前提和设计目标
HDFS在设计时,已考虑硬件错误等情况,具有高容错性等特征。
HDFS的假设前提和设计目标包括以下几个方面
- 硬件错误
- 大规模数据集
- 简单的一致性模型
- 移动计算比移动数据更划算
- 异构软硬件平台间的可移植性
2. HDFS的组件
- Namenode
- HDFS守护线程
- 用途:
- 管理文件系统的命名空间
- 负责记录文件是如何分割成数块
- 管理这些数据库分别被存储到哪些数据节点上
- 主要功能:
- 对内存及IO进行集中管理
- Datanode
- 文件系统的工作节点
- 根据需要存储和检索数据块,并且定期向Namenode发送他们所存储的块的列表
- Secondary Namenode
- 辅助后台程序
- 与Namenode进行通信,以便定期保存HDFS元数据的快照,用以备份和恢复数据