2016-08-15 89 views
0

我有一个包含4个DataNode的Hadoop集群。我在两个问题之间感到困惑:数据复制和数据分发。HDFS复制和数据分布

假设我有一个2 GB的文件,我的复制因子是2 &块大小是128 MB。当我把这个文件放入hdfs时,我看到每个128 MB块的两个副本被创建,并且它们被放置在datanode3和datanode4中。但datanode2 & datanode1不使用。由于复制因素,数据被复制,但我期望在datanode1和datanode2中看到一些数据块。有什么问题吗?

假设我有20个DataNode并且复制因子是2.如果我将一个文件(2 GB)放在HDFS上,我又希望看到每个128 MB的两个副本,但也期望看到这些128 MB块是分布在20个DataNode之间。

回答

0

理想情况下,2GB文件应该分布在所有可用的DataNode中。

File Size: 2GB = 2048MB 
Block Size: 128MB 
Replication Factor: 2 

随着上述配置,你应该有:2048/128 * 2块即32块。这些块应该在所有DataNode之间几乎平均分配。考虑到你有4个DataNode,每个DataNode应该有8块左右。

因为没有上述情况,我可以想到的原因是DataNode关闭。检查所有DataNode是否都启动:sudo -u hdfs hdfs dfsadmin -report