0

我有一个 10 节点集群,每台机器都有 8 GB RAM,当我运行我的拓扑时,分配的内存总是与工作人员的数量成正比。每个工作人员大约占用 1 GB 的内存。我想为我尝试在storm.yaml中设置的每个worker分配2 GB,worker.childopts: "-Xmx6g -Xms6g"因为我在每个节点中运行三个worker。但是分配的内存减少到 1 GB 以下。

如何更好地调整我的拓扑?

我的一个螺栓出现以下错误

java.lang.OutOfMemoryError:java.nio.HeapByteBuffer.(HeapByteBuffer.java:57) 处的 Java 堆空间 java.nio.ByteBuffer.allocate(ByteBuffer.java:335) 处 org.apache.kafka.common.memory.MemoryPo

4

2 回答 2

2

你可以参考这个链接 https://github.com/apache/storm/blob/master/conf/defaults.yaml

我配置了2个参数:

worker.heap.memory.mb: 768
supervisor.memory.capacity.mb: 4096.0

如果你有 10 名工人,你必须配置supervisor.memory.capacity.mb= (768 x 10) 这是主管的能力

于 2018-05-28T11:19:12.913 回答
1

我认为您的配置略有错误。该worker.childopts设置被传递给每个工作人员 JVM,因此当您设置时,您-Xmx6g -Xms6g将为三个工作人员中的每一个提供 6 个内存(节点总共 18 个)

于 2018-05-26T07:22:09.610 回答