我试图了解我的 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 Web UI 显示值如下:
<h2>Cluster Summary (Heap Size is <%= StringUtils.byteDesc(Runtime.getRuntime().totalMemory()) %>/<%= StringUtils.byteDesc(Runtime.getRuntime().maxMemory()) %>)</h2>
运行时
将这些记录为:
totalMemory()
Returns the total amount of memory in the Java virtual machine.maxMemory()
Returns the maximum amount of memory that the Java virtual machine will attempt to use
Max 将成为服务启动命令中的 -Xmx
参数。总内存主要因素是 HDFS 集群中的 block 数。名称节点每个 block 需要约 150 个字节,每个副本需要 +16 个字节,并且必须保存在实时内存中。所以默认的复制因子 3 给你 182 字节,你有 7534776 个 block 给大约 1.3GB。加上名称节点中使用的所有其他非文件相关内存,1.95GB 听起来不错。我会说你的 HDFS 集群大小需要更大的名称节点,更多的 RAM。如果可能,增加namenode startup -Xmx
。如果用尽,您将需要一个更大的虚拟机/物理盒子。
关于java - "Heap Size"对 Hadoop Namenode 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215994/