2016-04-21 82 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