混淆Hadoop namenode内存使用情况

时间:2015-01-29 09:51:08

标签: hadoop hadoop2

我对Hadoop名字节点内存计算有一个愚蠢的怀疑。它在Hadoop书籍(定义指南)中被提及为

"由于namenode在内存中保存文件系统元数据,因此文件系统中文件数量的限制由namenode上的内存量控制。根据经验,每个文件,目录和块大约需要150个字节。因此,例如,如果您有一百万个文件,每个文件占用一个块,则需要至少300 MB的内存。虽然存储数百万个文件是可行的,但数十亿还超出了当前硬件的能力。"

由于每个占用一个块,namenode最小内存应该是150MB而不是300MB。请帮我理解为什么它是300MB

1 个答案:

答案 0 :(得分:1)

我猜你读过汤姆怀特的第二版书。我有第三版,这是对帖子Scalability of the Hadoop Distributed File System的引用。进入帖子,我读了下一句话:

  

估计显示名称节点使用少于200个字节来存储单个元数据对象(文件inode或块)

HDFS NameNode中的文件是:文件inode +块。每个引用都有150个字节。 1.000.000个文件= 1.000.000 inode + 1.000.000块引用(在该示例中,每个文件占用1个块)。

2.000.000 * 150字节〜= 300Mb

我把链接给你,可以验证我是否在论证中犯了错误。