• HDFS客户端读写流程以及元数据、namenode和secondarynamenode checkpoint原理


    1.HDFS客户端写流程

    2.HDFS客户端读流程

    3. 元数据

    “元数据”是Namenode的一块内存空间,记录了每个文件数据块(Block)的位置信息。Namenode主要维护两个文件,一个是fsimage,一个是edits log。

    edits log :主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。

    fsimage :保存NameNode节点中某一时刻内存中的元数据(即目录树),edits保存这一时刻之后的对元数据的更改信息。

    在NameNode运行时会将内存中的元数据信息存储到所指定的文件,即$/current目录下的fsimage文件,此外还会将另外一部分对NameNode更改的日志信息存储到$/current目录下的edits文件中。fsimage文件和edits文件可以确定NameNode节点当前的状态。

    4.Namenode和SecondaryNameNode、checkpoint原理

    namenode :单一主元数据服务器,其中包含每个文件、文件位置以及这些文件及其所在的DataNode内的所有数据块的内存映射。

    secondarynamenode : secondarynamenode 其实是namenode的备份,只不过secondarynamenode 在特定的时间间隔给namenode做备份

    我们在hdfs-site.xml配置文件中添加SecondaryNameNode的地址:

    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadop52:50090</value>
    </property>

    以下即是checkpoint过程:

    1. 辅助Namenode请求主Namenode停止使用edits文件,暂时将新的写操作记录到一个新文件中,如edits.new。
    2. 辅助Namenode节点从主Namenode节点获取fsimage和edits文件(采用HTTP GET)
    3. 辅助Namenode将fsimage文件载入到内存,逐一执行edits文件中的操作,创建新的fsimage文件
    4. 辅助Namenode将新的fsimage文件发送回主Namenode(使用HTTP POST)
    5. 主Namenode节点将从辅助Namenode节点接收的fsimage文件替换旧的fsimage文件,用步骤1产生的edits.new文件替换旧的edits文件(即改名)。同时更新fstime文件来记录检查点执行的时间
  • 相关阅读:
    【JAVA SE基础篇】28.面向对象三大特征之多态
    【JAVA SE基础篇】27.面向对象三大特征之封装
    【JAVA SE基础篇】26.toString()方法和equlas()方法
    【JAVA SE基础篇】25.面向对象三大特征之继承
    【JAVA SE基础篇】24.包的机制和import详解
    ssh框架文件上传下载
    java格式化时间格式
    表单提交后打印后台传过来的数据
    使用ajaxfileupload.js实现文件上传
    JSTL跳出<c:forEach>循环
  • 原文地址:https://www.cnblogs.com/theyang/p/12384723.html
Copyright © 2020-2023  润新知