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

问题描述 投票:0回答:3

我有版本3.1.1的5个节点HDP群集,其中2个Name节点和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  

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

hadoop bigdata
3个回答
0
投票

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

[也许使用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 can I specify replication factor per file to increase avaliability


0
投票

Hadoop自动控制数据和复制的放置位置,正如Horatiu所述。但是有时数据可能会在某些或单个节点上倾斜。

由于以下原因,HDFS可能不会始终以统一的方式在磁盘上放置数据:

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

您需要检查的东西很少。

  1. 是否有任何或其他文件带有手动复制因子Control Replication factor for specific files
  2. 数据节点1是否正在存储不必要的日志
  3. 尝试运行磁盘平衡器

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

请参考HDFS disk balancer


0
投票

关于这种不平衡可能没有什么解释:

a)如果所有数据导入HDFS都是通过SLAVE 1本身上的客户端进行的,

b)如果您的SLAVE 1被标记为在机架#1中,而SLAVES 2-3在另一个机架中,并且您正在使用SLAVE 2或SLAVE 3上的客户端写入HDFS,

c)历史记录-节点退役/重新平衡等

HDFS Architecture文件中所述:

在通常情况下,当复制因子为3时,HDFS的放置策略是在以下情况下将一个副本放置在本地计算机上:writer位于数据节点上,否则位于同一节点中的随机数据节点上与写程序一样,在另一个节点上的另一个副本上(远程)机架,最后一个机架位于同一远程服务器的不同节点上机架...

话虽如此,您的案例中的失衡实际上很小,小于默认的再平衡阈值10%。因此,如果要更正它,则需要手动启动平衡器并提供较低的阈值。

© www.soinside.com 2019 - 2024. All rights reserved.