模块一:Hadoop核心框架(五)----HDFS之重要概念

HDFS简介

HDFS (全称:Hadoop Distribute File System,Hadoop 分布式文件系统)是 Hadoop 核心组成,是分布式存储服务。
分布式文件系统横跨多台计算机,在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力。
HDFS是分布式文件系统中的一种

HDFS的重要概念

  • 典型的Master/Slave架构:
    HDFS 的架构是典型的 Master/Slave 结构。
    HDFS集群往往是一个NameNode(HA架构会有两个NameNode,联邦机 制)+多个DataNode组成;
    NameNode是集群的主节点,DataNode是集群的从节点。

  • 分块存储(block机制)
    HDFS 中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定;
    Hadoop2.x版本中默认的block大小是128M;

  • 命名空间(NameSpace)
    HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。
    Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被Namenode 记录下来。
    HDFS提供给客户单一个抽象目录树,访问形式:hdfs://namenode的hostname:port/test/input;例如:hdfs://linux121:9000/test/input

  • NameNode元数据管理
    我们把目录结构及文件分块位置信息叫做元数据。
    NameNode的元数据记录每一个文件所对应的block信息(block的id,以及所在的DataNode节点的信息)

  • DataNode数据存储
    文件的各个 block 的具体存储管理由 DataNode 节点承担。一个block会有多个DataNode来存储,DataNode会定时向NameNode来汇报自己持有的block信息。

  • 副本机制
    为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。副本数量默认是3个。

  • 一次写入,多次读出
    HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的随机修改。 (支持追加写入,不只支持随机更新)
    正因为如此,HDFS 适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用(修改不方便,延迟大,网络开销大,成本太高)

HDFS架构

图片来自它处

  • NameNode(nn):HDFS集群管理者,Master

    • 维护管理HDFS的名称空间(NameSpace)
    • 维护副本策略
    • 记录文件Block的映射信息
    • 负责处理客户端读写请求
  • DataNode:NameNode下达命令,DataNode执行实际操作,Slave节点。

    • 保存实际的数据块
    • 负责数据块的读写
  • Client:客户端

    • 上传文件到HDFS的时候,Client负责将文件切分成Block,然后进行上传
    • 请求NameNode交互,获取文件的位置信息
    • 读取或写入文件,与DataNode交互
    • Client可以使用一些命令来管理HDFS或者访问HDFS
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章