hadoop + 如何重新平衡 hdfs

问题描述

我们有2.6.5个数据节点的HDP集群版本8,所有机器都安装在rhel 7.6版本上

HDP 集群基于 amabri 平台版本 - 2.6.1

每个数据节点(worker machine)包括两个磁盘,每个磁盘大小为1.8T

当我们访问数据节点机器时,我们可以看到磁盘大小之间的差异

例如在第一个数据节点上的大小是 :( by df -h )

/dev/sdb                  1.8T  839G  996G  46% /grid/sdc
/dev/sda                  1.8T 1014G  821G  56% /grid/sdb

在第二个数据节点上,大小为:

/dev/sdb                  1.8T  1.5T  390G  79% /grid/sdc
/dev/sda                  1.8T  1.5T  400G  79% /grid/sdb

在第三个数据节点上的大小为:

/dev/sdb                  1.8T  1.7T  170G  91% /grid/sdc
/dev/sda                  1.8T  1.7T  169G  91% /grid/sdb

等等

最大的问题是为什么 HDFS 不在 HDFS 磁盘上执行重新平衡?

例如,所有磁盘上的预期结果应该在所有数据节点机器上具有相同的大小

为什么 datanode1datanode2datanode3 等之间使用的大小不同?

关于 HDFS 中调整参数的任何建议可以帮助我们吗?

因为当一个磁盘达到 100% 大小而另一个磁盘更小 50%

enter image description here

enter image description here

解决方法

这是 HDP 2.6 中 hdfs 重新平衡器的已知行为,导致块分布不平衡的原因有很多。 Click 检查所有可能的原因。

通过 HDFS-1312 引入了磁盘平衡选项来解决此问题。

以下文章将帮助您更有效地调整它:-

  1. HDFS Balancer (1): 100x Performance Improvement
  2. HDFS Balancer (2): Configurations & CLI Options
  3. HDFS Balancer (3): Cluster Balancing Algorithm

我建议升级到 HDP3.X,因为 Cloudera 支持的 HDP 2.x 不再是 not supported