02 Hadoop分布式文件系统-HDFS

HDFS是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的;可以运行于廉价的商用服务器上,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,为超大数据集的应用处理带来了很多便利。

一、HDFS原理

Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)被设计成适合运行在通用硬件上的分布式文件系统。

HDFS是一个高度容错性的系统,适合部署在廉价的机器上

HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用

HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的

HDFS是Apache Hadoop Core项目的核心部分

HDFS特点:

  1. 高容错性、可构建在廉价机器上
  2. 适合批处理
  3. 适合大数据处理
  4. 流式文件访问

HDFS局限:

  1. 不支持低延迟访问
  2. 不适合小文件存储
  3. 不支持并发写入
  4. 不支持修改

1. HDFS的假设前提和设计目标

HDFS在设计时,已考虑硬件错误等情况,具有高容错性等特征。

HDFS的假设前提和设计目标包括以下几个方面

  1. 硬件错误
  2. 大规模数据集
  3. 简单的一致性模型
  4. 移动计算比移动数据更划算
  5. 异构软硬件平台间的可移植性

2. HDFS的组件

  • Namenode
    • HDFS守护线程
    • 用途:
      • 管理文件系统的命名空间
      • 负责记录文件是如何分割成数块
      • 管理这些数据库分别被存储到哪些数据节点上
    • 主要功能:
      • 对内存及IO进行集中管理
  • Datanode
    • 文件系统的工作节点
    • 根据需要存储和检索数据块,并且定期向Namenode发送他们所存储的块的列表
  • Secondary Namenode
    • 辅助后台程序
    • 与Namenode进行通信,以便定期保存HDFS元数据的快照,用以备份和恢复数据