zoukankan      html  css  js  c++  java
  • HDFS 分布式文件系统架构原理

    HDFS 系统架构原理

    @数据分析-jacky

    1. 定义

    HDFS(Hadoop Distributed File System)是 Hadoop 项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。

    HDFS 源于 Google 在 2003年 10月份发表的 GFS(Google File System)论文。它其实就是 GFS 的一个克隆版本。

    2. 特点

    高容错性

    1.上传的数据自动保存多个副本。它是通过增加副本的数量,来增加它的容错性。

    2.如果某一个副本丢失,HDFS 机制会复制其他机器上的副本,而我们不必关注它的实现。

    支持超大文件

    超大文件在这里指的是几百 MB、几百 GB 甚至几 TB 大小的文件,一般来说,一个 Hadoop 文件系统会存储 T(1TB=1024GB),P(1P=1024T)级别的数据。

    流式数据访问

    HDFS 处理的数据规模都比较大,应用一次需要访问大量的数据。同时,这些应用一般是批量处理,而不是用户交互处理。HDFS 使应用程序能够以流的形式访问数据集,注重的是数据的吞吐量,而不是数据访问的速度。

    简化的一致性模型

    大部分的 HDFS 程序操作文件时需要一次写入,多次读取。在 HDFS 中,一个文件一旦经过创建、写入、关闭后,一般就不需要修改了。这样简单一致性模型,有利于提供高吞吐量的数据访问模型。

    3. 体系结构

    1.Client(客户端)

    • 1)实现文件切分

      • 将文件切分成一个一个的数据块,然后在进行存储。
    • 2)与 NameNode 交互,获取文件的位置信息

    • 3)跟 DataNode 交互,读取对应的数据块。

      • 我们实际上市在 DataNode 上读取数据
    • 4)管理和访问 HDFS

      • 我们可以通过客户端,对HDFS 进行增删改查

    2.NameNode

    Namenode 是 Master、管理者,是主从结构中主节点上运行的进程。

    • 1)管理 HDFS 的名称空间
    • 2)管理数据块的映射关系
    • 3)配置副本策略
    • 4)客户端的读写请求

    3.DataNode

    DataNode 就是 Slave,在从节点都会驻留一个数据节点的守护进程,它将 HDFS 数据块写到 Linux 本地文件系统的实际文件中,并不断将当前存储的数据块(block)报告给 namenode,并接受 namenode 的指令来创建、删除、移动本地磁盘的数据块。

    • 1)实际存储的数据块
    • 2)执行数据块的读/写操作

    4.Block(数据块)

    一个文件是被切分成多个 Block,并且每个 block 有多个副本,这些副本被分布在多个 datanode 上,它数据 HDFS 的最小存储单元。

    5.元数据

    是文件系统中文件和目录的信息以及文件和 block 的对应关系。

    6.命名空间镜像(FSlmage)

    HDFS 的目录树及文件/目录元信息是保存在内存中的,如果节点掉电或进程崩溃,数据将不再存在,必须将上述信息保存到磁盘,Fslmage 就是保存某一个时刻元数据的信息的磁盘文件。

    7.镜像编辑日志(EditLog)

    对内存目录树的修改,也必须同步到磁盘元数据上,但每次修改都将内存元数据导出到磁盘,显然是不现实的,为此,namenode 引入了镜像编辑日志,将每次的改动都保存在日志中,如果 namenode 机器宕机或者 namenode 进程挂掉后可以使用 FSImage 和 EditLog 联合恢复内存元数据。

    4. 读写数据流程

    @数据分析-jacky

  • 相关阅读:
    2020.10.13辗转相除法
    关于……
    友情链接
    李群笔记
    c++中的复数
    python快速傅里叶变换
    多参数函数共轭梯度法寻找极值:gsl_multimin_fdfminimizer
    python: matplotlib.pyplot 制作动图
    简易威尔逊云室计划
    大规模矩阵对角化方法:Lanczos
  • 原文地址:https://www.cnblogs.com/shujufenxi/p/14413646.html
Copyright © 2011-2022 走看看