【问题标题】:HADOOP HDFS imbalance issueHADOOP HDFS 不平衡问题
【发布时间】:2014-05-02 05:35:44
【问题描述】:

我有一个 Hadoop 集群,它有 8 台机器,所有 8 台机器都是数据节点。 有一个程序在一台机器(比如机器 A)上运行,它将在 HDFS 中连续创建序列文件(每个文件大约 1GB)。

问题是:所有 8 台机器都是相同的硬件并且具有相同的容量。当其他机器在 HDFS 磁盘上仍有大约 50% 的可用空间时,机器 A 只剩下 5%。 我查看了区块信息,发现几乎每个区块在机器 A 上都有一个副本。

有没有办法平衡副本? 谢谢。

【问题讨论】:

    标签: hadoop hdfs load-balancing


    【解决方案1】:

    这是默认放置策略。它适用于典型的 M/R 模式,其中每个 HDFS 节点也是一个计算节点,写入器机器是均匀分布的。

    如果你不喜欢它,那么有HDFS-385 Design a pluggable interface to place replicas of blocks in HDFS。你需要写一个实现BlockPlacementPolicy接口的类,然后把这个类设置为hdfs-site.xml中的dfs.block.replicator.classname

    【讨论】:

      【解决方案2】:

      有办法。您可以使用 hadoop 命令行平衡器工具。 HDFS 数据可能并不总是均匀地分布在 DataNode 上。要在集群中的 DataNode 上均匀分布 HDFS 数据,可以使用此方法。

       hadoop balancer [-threshold <threshold>]
      

      其中,阈值是磁盘容量的百分比

      查看以下链接了解详情:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-13
        • 2014-03-13
        • 2019-11-15
        相关资源
        最近更新 更多