NameNode进程在Java虚拟机中执行,NameNode创建的Java对象在Java虚拟内存中管理。创建文件或目录时,会在堆内存中创建 inode 对象和块对象。
命名空间管理的Java对象大小差不多是150字节,早期因为对象体积较小,所以在文件系统中可以存放相当数量的对象。
现在假设我们要调整 namnode 堆大小
调整名称节点堆大小也应该根据 HDFS 中的文件数量
表示堆大小和链接上定义的文件数量的表 -https://medium.com/@iacomini.riccardo/hadoop-namenode-garbage-collector-tuning-7f6a029e9012
现在假设 HDFS 中有 1000000 个文件
根据表namenode堆应该是3379M
但在 HDFS 中,我们有复制因子,实际上,如果复制因子为 3,那么我们有 3000000 个文件
那么我们是否需要考虑复制因子来捕获名称节点堆大小?
或者换句话说,我们需要根据3000000个文件找到namenode堆吗?