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

时间:2019-06-28 20:40:32

标签: hadoop hdfs cloudera namenode

Cloudera blog或Hortonwork forum中,我读到:

“根据经验,HDFS中的每个文件,目录和块都表示为namenode内存中的一个对象,每个文件占用150个字节。因此,每1000万个文件(每个使用一个块)将占用大约3 GB的空间的记忆力”

但是:

10000000 * 150 = 1500000000字节= 1.5 GB。

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

谢谢

1 个答案:

答案 0 :(得分:2)

对于每个小文件,namenode需要在内存中存储两个对象:每个文件对象和每个块对象。这样,每个单个文件大约需要300个字节。