【问题标题】:HDFS exclude datanodes in AddblockRequestProtoHDFS 在 AddblockRequestProto 中排除数据节点
【发布时间】:2016-11-12 02:29:12
【问题描述】:

我正在实现一个用于写入 HDFS 的数据节点故障转移,当块的第一个数据节点发生故障时,HDFS 仍然可以写入一个块。

算法是。首先,将识别故障节点。然后,请求一个新块。 HDFS 端口 api 提供了excludeNodes,我用来告诉 Namenode 不要在那里分配新块。 failedDatanodes 被识别为失败的数据节点,它们在日志中是正确的。

req := &hdfs.AddBlockRequestProto{
    Src:           proto.String(bw.src),
    ClientName:    proto.String(bw.clientName),
    ExcludeNodes:  failedDatanodes,
}

但是,namenode 仍然将块定位到失败的数据节点。

有人知道为什么吗?我在这里错过了什么吗? 谢谢。

【问题讨论】:

    标签: hadoop go hdfs failover


    【解决方案1】:

    我找到了解决方案,首先放弃块,然后请求新块。在之前的设计中,新请求的块不能替换旧的

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      相关资源
      最近更新 更多