我有5.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
如何在所有数据节点中平均复制数据?
答案 0 :(得分: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
答案 1 :(得分:0)
Hadoop会自动控制数据和复制的放置位置,正如Horatiu所提到的那样。 但是有时数据可能会在某些或单个节点上倾斜。
由于以下原因,HDFS可能无法始终以统一的方式在磁盘上放置数据:
您需要检查的东西很少。
要启用磁盘平衡器,必须在hdfs-site.xml中将dfs.disk.balancer.enabled设置为true。