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