【问题标题】:how hdfs removes over-replicated blockshdfs 如何删除过度复制的块
【发布时间】:2015-09-11 20:42:34
【问题描述】:

例如,我使用复制因子 2 将文件写入 HDFS。我正在写入的节点现在具有文件的所有块。该文件所有块的其他副本分散在集群中的所有剩余节点周围。这是默认的 HDFS 策略。 如果我将文件的复制因子降低到 1,究竟会发生什么? HDFS 如何决定从哪些节点删除哪些块?我希望它尝试从文件中块数最多的节点中删除块?

我为什么要问 - 如果是这样,那将是有道理的 - 它会减轻文件的处理。因为如果所有块只有一个副本,并且所有块都位于同一个节点上,那么由于数据传输到集群中的其他节点,使用 map-reduce 处理文件会更加困难。

【问题讨论】:

    标签: hadoop hdfs replication


    【解决方案1】:

    当一个块变成over-replicated 时,name node 会选择一个副本来移除。 name node 宁愿不减少承载副本的机架数量,其次更愿意从data node 中删除可用磁盘空间最少的副本。这可能有助于重新平衡集群上的负载。

    来源:The Architecture of Open Source Applications

    【讨论】:

    • 如果您还提供信息来源(例如文档,或者您正在为 HDFS 做出贡献并了解代码库),那就太好了。
    • 谢谢。看起来写的很棒。
    【解决方案2】:

    HDFS 从不同节点随机删除过度复制的块,并重新平衡,这意味着它们不只是从当前节点删除。

    【讨论】:

    • 我知道HDFS有'rebalance'命令,从节点的角度来说重新平衡节点的使用,但我对文件重新平衡一无所知 是的,HDFS在写入或增加时尝试将文件块放在不同的节点复制因子,但这不是我的问题。你能链接任何文档吗?
    • 这就是我所说的 - 重新平衡只是重新平衡涉及数据节点上使用的总空间的整体块,涉及的机架。正如我在我的问题中所问的那样,这与每个数据节点上有多少文件块有关的单独文件无关。
    • 基本上平衡和复制因子是不同的主题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多