为什么名称节点文件使用双倍内存?

Why double amount of memory is used for Name Node files?

Cloudera blog or in hortonwork forum 我读了::

"Every file, directory and block in HDFS is represented as an object in the namenode’s memory, each of which occupies 150 bytes, as a rule of thumb. So 10 million files, each using a block, would use about 3 gigabytes of memory"

但是:

10000000 * 150 = 1500000000 字节 = 1.5 GB。

看起来对于 3GB 我需要分配 300 字节。我不明白为什么每个文件使用 300 个字节而不是 150 个字节?它只是NameNode。应该没有任何复制因子。

谢谢

对于每个小文件,namenode需要在内存中存储两个对象:per-file对象和per-block对象。这导致每个文件大约 300 字节。