Cloudera blog或Hortonwork forum中,我读到:
“根据经验,HDFS中的每个文件,目录和块都表示为namenode内存中的一个对象,每个文件占用150个字节。因此,每1000万个文件(每个使用一个块)将占用大约3 GB的空间的记忆力”
但是:
10000000 * 150 = 1500000000字节= 1.5 GB。
看起来对于3GB,我需要分配300个字节。我不明白为什么每个文件使用300个字节而不是150个字节?这只是NameNode。不应有任何复制因素。
谢谢
答案 0 :(得分:2)
对于每个小文件,namenode需要在内存中存储两个对象:每个文件对象和每个块对象。这样,每个单个文件大约需要300个字节。