Hadoop中的复制品的Namenode上需要内存



Replication部分中的Cloudera博客文章中,已经解释说,复制不会在Namenode上消耗内存。但是,我对此表示怀疑,因为我了解Namenode将有关每个文件及其副本的信息存储在主内存中。那么,在复制的情况下,内存的需求是相同的吗?

井的内存消耗取决于您的含义,因为有物理内存 and 虚拟内存(我只是在这里谈论Namenode(

物理内存方面,Cloudera博客是正确的,因为数据台的责任是与Namenode通信(例如,当在重新启动后连接时(所维护的块。Namenode仅将文件系统结构存储到磁盘(FSIMAGE和编辑文件(。

现在,当您谈论虚拟内存时,情况略有不同,您可以从FSNamesystem的源代码清楚地看到(这是负责维护RAM中FS结构的组件(,对BlockManager有参考。BlockManager本身维护对BlocksMap的引用,根据文档,该文档确实维护了与各个块的datanodes列表。

此类将地图从一个块到其元数据。块 元数据目前包括其属于的区块收集, 存储块的datanodes。

如果您浏览了BlockManager的源代码,则可以清楚地查看使用BlocksMap的位置和位置。

我真正想到的是,因为克卢德拉(Cloudera(的家伙有大规模计算的经验,并且可能衡量了影响的影响,这是这种结构的大小与Namenode必须照顾的元数据相比,这种结构的大小并不重要。

最新更新