问题描述
我们有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 磁盘上执行重新平衡?
例如,所有磁盘上的预期结果应该在所有数据节点机器上具有相同的大小
为什么 datanode1
到 datanode2
到 datanode3
等之间使用的大小不同?
关于 HDFS 中调整参数的任何建议可以帮助我们吗?
解决方法
这是 HDP 2.6 中 hdfs 重新平衡器的已知行为,导致块分布不平衡的原因有很多。 Click 检查所有可能的原因。
通过 HDFS-1312 引入了磁盘平衡选项来解决此问题。
以下文章将帮助您更有效地调整它:-
- HDFS Balancer (1): 100x Performance Improvement
- HDFS Balancer (2): Configurations & CLI Options
- HDFS Balancer (3): Cluster Balancing Algorithm
我建议升级到 HDP3.X,因为 Cloudera 支持的 HDP 2.x 不再是 not supported。