Hadoop namenode 内存使用混乱

2024-04-08

我对 Hadoop namenode 内存计算有一个愚蠢的疑问。在 Hadoop 书籍(明确指南)中提到为

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

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


我猜你读过汤姆·怀特的书的第二版。我有第三版,这个参考帖子Hadoop分布式文件系统的可扩展性 http://yahoohadoop.tumblr.com/post/98293678956/scalability-of-the-hadoop-distributed-file-system。在帖子中,我读到了下一句话:

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

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

2.000.000 * 150 字节 ~= 300Mb

我把链接放在你可以验证我的论点是否犯了错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop namenode 内存使用混乱 的相关文章

随机推荐