我试图了解我的Hadoop集群是否有问题。 当我在群集摘要中转到Web UI时,它说:
Cluster Summary
XXXXXXX files and directories, XXXXXX blocks = 7534776 total.
Heap Size is 1.95 GB / 1.95 GB (100%)
我担心为什么这个堆大小指标为100%
有人可以提供一些解释,说明namenode堆大小如何影响群集性能。以及是否需要修复。
答案 0 :(得分:6)
namenode Web UI显示的值如下:
<h2>Cluster Summary (Heap Size is <%= StringUtils.byteDesc(Runtime.getRuntime().totalMemory()) %>/<%= StringUtils.byteDesc(Runtime.getRuntime().maxMemory()) %>)</h2>
Runtime
将这些文件记录为:
totalMemory()
返回Java虚拟机中的内存总量。maxMemory()
返回Java虚拟机将尝试使用的最大内存量
Max将成为service start命令中的-Xmx
参数。总内存主要因素是HDFS群集中的块数。 namenode每个块需要大约150个字节,每个副本需要+16个字节,并且必须保存在实时内存中。因此,默认复制因子3为您提供182个字节,而您有7534776个块提供约1.3GB。加上namenode中使用的所有其他非文件相关内存,1.95GB听起来是正确的。我会说你的HDFS集群大小需要更大的名称节点,更多的RAM。如果可能,请增加namenode startup -Xmx
。如果超出,您将需要更大的VM /物理盒。