【问题标题】:Add new disks to datanode with bigger hard drivers使用更大的硬盘驱动器将新磁盘添加到 datanode
【发布时间】:2017-01-27 22:31:58
【问题描述】:

我正在运行带有一些数据节点的 hdfs,每个数据节点都有 8 x 1TB 硬盘驱动器。

我想为每个数据节点添加 2 个 2TB 硬盘驱动程序。我知道如何为datanode添加新的硬盘驱动程序,但我混淆了新的硬盘驱动程序比旧的硬盘驱动程序大,所以它可能在datanode上的硬盘驱动程序之间的数据分布有问题。

我认为最好在 2TB 硬盘驱动器上创建 2 个逻辑驱动程序 (1TB),然后将其挂载到操作系统,以便每个数据节点路径的卷相同。

我需要一些建议。感谢阅读!

【问题讨论】:

    标签: hadoop hdfs hard-drive


    【解决方案1】:

    如果您在数据节点中混合了大小不同的磁盘,一个常见的问题是较小的磁盘会比最大的磁盘填充得更快。这是因为数据节点中默认的卷选择策略是轮询。基本上datanode会依次向每个磁盘写入新数据,不考虑磁盘大小或可用空间。

    还有一种替代卷选择策略,非常适合用于具有混合大小磁盘的数据节点,称为 AvailableSpaceVolumeChoosingPolicy - 我不确定您使用的是哪种 Hadoop 发行版,但 CDH 文档是:

    https://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_dn_storage_balancing.html#concept_tws_bbg_2r

    如果您更改为该策略,则默认情况下 75% 的新写入将转到未充分使用的磁盘,直到它们赶上其他磁盘,然后它会回退到循环写入。

    【讨论】:

    • 8 个旧磁盘已使用 80%。添加新磁盘后,我在 CDH 上运行了平衡器。我以为每个数据节点都会将数据从旧磁盘复制到新磁盘以保持平衡,但事实并非如此。你对这个问题有什么想法吗?非常感谢!
    • 平衡器不会在数据节点内的磁盘之间移动数据。它只在数据节点之间移动数据。据我所知,没有办法在数据节点内自动将数据从一个磁盘移动到另一个磁盘。在磁盘容量为 80% 的情况下,如果您移动到 ​​AvailableSpace,那么一切正常,新磁盘将开始填满。
    • Hadoop 2.6 不支持此功能。我在 Hadoop 3.0alpha 中看到了它。我决定使用手动方法。 wiki.apache.org/hadoop/…
    猜你喜欢
    • 2017-01-27
    • 2012-08-07
    • 2023-03-17
    • 2011-08-06
    • 2020-01-03
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多