• HDFS基本原理


    1. NameNode概述

    a、NameNodeHDFS的核心。

    b、NameNode也称为Master

    c、NameNode仅存储HDFS的元数据:文件系统中所有文件的目录树,并跟踪整个集群中的文件。

    d、NameNode不存储实际数据或数据集。数据本身实际存储在DataNodes中。

    e、NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件。

    f、NameNode并不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从数据节点重建。

    g、NameNode对于HDFS至关重要,当NameNode关闭时,HDFS / Hadoop集群无法访问。

    h、NameNodeHadoop集群中的单点故障。

    i、NameNode所在机器通常会配置有大量内存(RAM)。

     

     

    2. DataNode概述

    a、DataNode负责将实际数据存储在HDFS中。

    b、DataNode也称为Slave

    c、NameNodeDataNode会保持不断通信。

    d、DataNode启动时,它将自己发布到NameNode并汇报自己负责持有的块列表。

    e、当某个DataNode关闭时,它不会影响数据或群集的可用性。NameNode将安排由其他DataNode管理的块进行副本复制。

    f、DataNode所在机器通常配置有大量的硬盘空间。因为实际数据存储在DataNode中。

    g、DataNode会定期(dfs.heartbeat.interval配置项配置,默认是3秒)向NameNode发送心跳,如果NameNode长时间没有接受到DataNode发送的心跳, NameNode就会认为该DataNode失效。

    h、block汇报时间间隔取参数dfs.blockreport.intervalMsec,参数未配置的话默认为6小时.

     

    总结:

    NN和DN之间的汇报机制

    • 启动集群的时候 首先启动namenode 然后启动datanode
    • datanode启动的时候需要进行两件事
      • 去namenode进行注册汇报 报告自己启动成功 --->我活了
      • 去namenode汇报自己本机持有哪些数据块
    • 集群启动之后 正常工作期间 还需要间隔指定的时间进行汇报
      • datanode每隔3秒进行心跳 目的:报活
        dfs.heartbeat.interval
      • datanode每间隔6小时 汇报自己持有块信息
        dfs.blockreport.intervalMsec
    • 在启动的过程中 hdfs会进入所谓安全模式 数据只可以读不可以写 内部进行数据完整性校验
  • 相关阅读:
    loj#6074. 「2017 山东一轮集训 Day6」子序列(矩阵乘法 dp)
    loj#6073. 「2017 山东一轮集训 Day5」距离(费用流)
    洛谷P5108 仰望半月的夜空(后缀数组)
    二次剩余Cipolla算法学习笔记
    BZOJ5118: Fib数列2(二次剩余)
    BZOJ3122: [Sdoi2013]随机数生成器(BSGS)
    loj#2531. 「CQOI2018」破解 D-H 协议(BSGS)
    noi.ac #289. 电梯(单调队列)
    51nod“省选”模测第二场 C 小朋友的笑话(线段树 set)
    HDU 4770 Lights Against DudelyLights
  • 原文地址:https://www.cnblogs.com/TiePiHeTao/p/2d0340a9d40b93bda154a4e01e67f67b.html
Copyright © 2020-2023  润新知