2016-08-15 90 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