单个数据节点在 Hadoop 5 节点集群中存储更多数据



我有 5 个版本 3.1.1.In 的 HDP 集群,其中 2 个命名节点和 3 个数据节点。我正在维护默认复制因子 3。但 MAX 数据仅存储在第一个数据节点中。请参阅下面的磁盘利用率。

MASTER 1:
/dev/sdd1        63G   71M   60G   1% /opt/disk02
/dev/sdc1        63G   71M   60G   1% /opt/disk01
MASTER 2:
/dev/sdd1        63G  121M   60G   1% /opt/disk02
/dev/sdc1        63G  121M   60G   1% /opt/disk01
SLAVE 1:
/dev/sdd1        63G  4.0G   56G   7% /opt/disk02
/dev/sdc1       126G   14G  107G  12% /opt/disk01
SLAVE 2:
/dev/sdd1        63G  5.0G   55G   9% /opt/disk02
/dev/sdc1       126G  5.5G  114G   5% /opt/disk01
SLAVE 3:
/dev/sdc1       126G  5.0G  115G   5% /opt/disk01
/dev/sdd1        63G  4.0G   56G   7% /opt/disk02  

如何在所有数据节点中平均复制数据?

您无法精确控制复制将放置在哪些数据节点中,但在您的情况下,它应该位于每个节点上。

也许使用像 https://www.waytoeasylearn.com/2018/01/rack-awareness-in-hadoop-hdfs.html 机架这样的概念,并使用Cloudera或Hortonworks。

此外,请尝试平衡数据 http://www.informit.com/articles/article.aspx?p=2755708&seqNum=5 因为问题可能会得到解决。

即使您的一般复制因子是 3,也许对于路径,它是 1 或 2,最好检查 HDFS 是否可以为每个文件指定复制因子以增加可用性

Hadoop会自动控制数据和复制需要放置的位置,正如Horatiu已经提到的。 但有时数据可能会在某些节点或单个节点上出现偏差。

由于以下原因,HDFS 可能并不总是以统一的方式将数据放置在磁盘上:

  1. 大量写入和删除
  2. 磁盘更换

您需要检查的事项很少。

  1. 是否有任何文件或其他文件放置了手动复制因子 控制特定文件的复制因子
  2. 数据节点 1 是否正在存储不必要的日志
  3. 尝试运行磁盘平衡器

要启用磁盘平衡器,必须在 hdfs-site.xml 中设置 dfs.disk.balancer.enabled true。

请参考 HDFS 磁盘平衡器