Hadoop的复制品会占用NameNode的内存吗?



我们知道HDFS中的每个文件在NameNode中都会占用大约300字节的内存,因为每个文件都有2个其他的复制,所以一个文件在NameNode中会完全占用900字节的内存,或者复制品在NameNode中不占用内存。

查看在HADOOP-1687上完成的名称节点内存使用和性能的优化可以看到的内存使用量乘以复制因子。但是,文件目录的内存使用量不会因复制而增加成本。

在该更改之前(即在Hadoop 0.13中)用于块的字节数为152 + 72 *复制,每个块的数字为368字节,默认复制设置为3。文件通常使用 250 字节,目录使用 290 字节,两者与复制设置无关。

这些改进从 0.15 开始包括在内(其中确实包括一些每次复制的保存,但仍存在每次复制的成本)。

我还没有看到任何其他参考资料表明每个复制的内存使用情况已被删除。

来自Hadoop Wiki:"它保留文件系统中所有文件的目录树,并跟踪文件数据在整个集群中的保存位置。它本身不存储这些文件的数据。

NameNode 仅存储文件和目录信息。 如果复制因子为 3,则放入 HDFS 的 300 MB 文件将使用总共 900 MB 的原始磁盘空间。 每个 DataNode 将获得 300 MB 文件的一个副本,该文件存储在磁盘上而不是内存中。

最新更新