2016-04-21 27 views
0

我們知道HDFS中的每個文件都會佔用NameNode中大約300字節的內存,因爲每個文件都有2個其他複製,所以一個文件在NameNode中總共佔用900字節的內存,或者複製在NameNode中佔用內存。Hadoop的複製是否會佔用NameNode的內存

回答

2

查看在HADOOP-1687處完成的對名稱節點內存使用情況和性能的優化,可以看出的內存使用量乘以複製因子。但是,文件的內存使用量目錄不會因複製而增加成本。

在該更改之前(即在Hadoop 0.13中)使用的字節數爲152 + 72 *複製,每個塊的數字爲368字節,默認複製設置爲3.文件通常使用250字節和目錄290個字節,無論複製設置如何。

改進包括0.15(包括一些每複製節省,但仍有每複製成本)。

我還沒有看到任何其他引用表明每複製內存使用已被刪除。

-1

Hadoop Wiki:「它保留文件系統中所有文件的目錄樹,並跟蹤文件數據在羣集中的位置,它不存儲這些文件本身的數據。」

NameNode僅存儲文件和目錄信息。複製因子爲3時,放入HDFS的300 MB文件將使用總共900 MB的原始磁盤空間。每個DataNode將獲得300 MB文件的一個副本,存儲在不在內存中的磁盤上。

+0

嗨克里斯,你誤解了我的問題。我的意思是複製會消耗NameNode內存中的「元數據空間」。例如Namenode將爲namenode內存中的每個文件創建一些元數據。但對於複製NN爲他們創建元也是嗎? – Jack