2.HDFS

一.分布式文件系统

1.分布式文件系统(Distributed File System)概念

  • 分布式文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

2.分布式文件系统特点

  • 分布式文件系统是基于Master/Slave模式,通常提供多个供用户访问的服务器。

  • 分布式文件系统一般都会提供备份和容错功能。

  • 分布式文件系统一般都会基于操作系统的本地文件系统

  • 多用户多应用的并行读写是分布式文件系统产生的根源

  • 分布式文件系统扩充存储空间的成本低廉,提供冗余备份和分布式计算

3.分布式文件系统结构

  • 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的。

  • 节点分为两类:

    • 主节点(Master Node):也被称为名称节点(NameNode)

    • 从节点(Slave Node):也被称为数据节点(DataNode)

二.HDFS

1.HDFS概念

  • HDFS:Hadoop Distributed File System

  • HDFS:是一个使用Java实现的、分布式的、可横向扩展的文件系统

  • HDFS:是Hadoop核心组件

2.HDFS的体系结构

  • HDFS采用主从结构模型,一个HDFS集群包括一个名称节点和若干个数据节点。

  • 名称节点(NameNode):作为中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问。

  • 数据节点(DataNode):一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求。

  • 名称节点的统一调度下进行数据块的创建、删除和复制等操作。每隔数据节点的数据实际上是保存在本地Linux文件系统中的。

 

 

3.HDFS设计目标

  • 大数据集:用于存储大量文件,不适合小文件存储。

  • 基于廉价的普通硬件,可以容错硬件出错。

  • 简单的一致性模型:HDFS应用程序一次写入,多次读取文件的访问模式。

  • 顺序的数据流访问:适用于处理批量数据,而不适合随机定位访问。

  • 侧重高吞吐量的数据访问,可以容忍数据访问的高延迟。。

4.HDFS的优点

  • 高容错性:数据自动备份和自动恢复

  • 适合批处理

  • 适合大数据处理

  • 可构建在廉价机器上

5.HDFS的缺点

  • 不适合低延时数据访问:寻址时间长,适合读取大文件

  • 不适合小文件存取:寻道时间超过文件读取时间

  • 不适合并发写入、文件随即修改:一个文件只能有一个写者,仅支持append(日志)

6.HDFS存储设计思想

 

 

7.HDFS架构

 

 

8.HDFS核心概念

  • Block:文件被窃氛围固定大小的数据块

    • 默认数据块大小为128MB(hadoop2.x),hadoop1.x为64MB,不到128MB单独存成一个block。

    • 每个文件分成的block被存储在不同的数据节点上。

    • 每个block都有三份副本,相互都是平等的。

  • NameNode(NN):名称节点

    • 概念:用于管理文件系统命名空间的组件

    • 特点:一个HDFS集群只有一个NameNode,一个命名空间,一个根目录,一份元数据。

    • 主要功能:

      • 用于接受客户端的读写服务

      • 保存metadata数据

      • 保存文件的拥有者(ownership)和权限(permissions)

      • 保存文件包含的块信息以及块在数据节点的位置(由数据节点启动时上报)

  • DataNode(DN):数据节点,用于存储数据块block

    • 启动时需要向NN汇报block信息

    • 通过向NN发送心跳保持联系(3秒一次),如果NN在10分钟没有收到DN的心跳,则失去节点,将这个DataNode上存储的Block再备份到其他的节点上保证副本数量。

    • BlockSize是不可变的为128MB,但是副本数量用户可以设置,默认为3个。

    • 对于不足128MB数据是不会占用128MB实际空间

  • 元数据(metadata):

    • 保存在NameNode中,启动后会加载到内存中,用于快速查询

    • 主要包括:

      • fsimage:元数据镜像文件,用于保存文件系统的目录树

      • edits:元数据操作日志,用于对目录树的修改操作,被写入共享存储系统中

  • SecondaryNameNode(SNN):

    • 功能:帮助NN合并edits,减少NN启动时间,不是NN的备份

    • SNN执行的合并时机:

      • 根据配置文件设置的时间间隔fs.checkpoint.period,默认3600秒

      • 根据配置文件设置edits log大小fs.checkpoint.size,规定edits文件的最大值默认是64MB

    • NameNode高可用时没有SNN

    • HA支持动态增加DataNode

 9.Block的副本防止策略

  • 第一个副本:放置在上传文件的DN,如果是集群外提交,则随机挑选一台磁盘不太满、CPU不忙的节点。

  • 第二个副本:放置在与第一个副本不同的机架的节点上。

  • 第三个副本:与第二个副本相同机架的节点。

  • 更多副本:随机节点。

 

 

10.HDFS读文件流程

 

 

 

11.HDFS写文件流程

 

posted @ 2020-03-02 22:18  All_just_for_fun  阅读(289)  评论(0编辑  收藏  举报