gpt4 book ai didi

hadoop - 为什么datanode会把 block 位置信息发给namenode呢?

转载 作者:可可西里 更新时间:2023-11-01 14:18:33 25 4
gpt4 key购买 nike

关于https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html有的话:

the DataNodes are configured with the location of both NameNodes, and send block location information and heartbeats to both.

但是为什么这个信息会被发送到namenode和它的fallback brother呢?我认为这些信息已经包含在namenode 的fs 图像中。名称节点应该知道他把 block 放在哪里。

最佳答案

Name Node包含了整个集群的元数据。它包含每个文件夹、文件、复制因子、 block 名称等的详细信息。名称节点还在内存中存储有关每个文件的 block 位置的信息(此信息由数据节点发送的 block 报告构建) .

数据节点为每个 block 存储以下信息:

  • block 中存储的实际数据
  • 存储在 block 中的数据的元数据。主要包含存储在 block 中的数据的校验和。

他们定期向名称节点发送心跳和阻止报告。

心跳:

  • 心跳报告的间隔由配置参数 dfs.heartbeat.interval(在 hdfs-site.xml 中)决定。默认设置为 3 秒。
  • 心跳中包含的一些信息是:
    • Registration:数据节点注册信息
    • 容量:数据节点可用的总存储容量
    • dfsUsed:HDFS 使用的存储
    • remaining:可用于 HDFS 的剩余存储空间
    • blockPoolUsed: block 池使用的存储
    • xmitsInProgress:从这个数据节点到其他节点的传输数
    • xceiverCount:活跃的收发器线程数
    • xmitsInProgress:从这个数据节点到其他节点的传输数
    • cacheCapacity:数据节点可用的总缓存容量
    • cacheUsed:使用的缓存量
  • 名称节点以下列方式使用此信息:
    • 数据节点的健康状况:这个数据节点应该被标记为死的还是活的?
    • Registration of new Data Node:如果是新添加的Data Node,则注册其信息
    • 更新数据节点的指标:心跳中发送的信息用于更新节点的指标
    • 向数据节点发出命令:名称节点可以根据心跳中收到的信息向数据节点发出以下命令:BlockRecoveryCommand(恢复指定的 block ),BlockCommand(用于将 block 传输到另一个数据节点,用于使某些 block 无效),Cache/Uncache(用于缓存/取消缓存 block 的命令)

阻止报告:

  • block 报告的间隔由配置 dfs.blockreport.intervalMsec(在 hdfs-site.xml 中)确定。默认设置为 21600000 毫秒。
  • block 报告中包含的一些信息是:
    • Registration:数据节点注册信息
    • blocks:关于 block 的信息,其中包含: block ID、 block 长度、 block 生成时间戳、 block 副本的状态(例如副本已完成或等待恢复等)
  • 此信息由名称节点用于:
    • Process first block report:如果是新注册的Data Node的第一次报告,它只是添加所有有效的副本。它忽略所有无效 block ,直到下一个 block 报告。
    • 用于更新有关 block 的信息:(数据节点 -> block )映射在名称节点中更新。将新区 block 报告与旧报告进行比较,并更新有关成功区 block 、损坏区 block 、无效区 block 等的信息

关于hadoop - 为什么datanode会把 block 位置信息发给namenode呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com