Увеличение назначенной памяти для топологии в Storm

У меня есть кластер из 10 узлов с каждой машиной объемом 8 ГБ ОЗУ, и когда я запускаю свою топологию, выделенная память всегда пропорциональна количеству рабочих. И каждый работник занимает примерно 1 ГБ памяти. Я хочу выделить 2 ГБ каждому работнику, который я пытался установить в storm.yaml как worker.childopts: "-Xmx6g -Xms6g" так как я бегу по три рабочих в каждом узле. Но назначенная память уменьшилась до уровня ниже 1 ГБ.

Как лучше настроить топологию?

Я получаю следующую ошибку в одном из моих болтов

java.lang.OutOfMemoryError: пространство кучи Java в java.nio.HeapByteBuffer.(HeapByteBuffer.java:57) в java.nio.ByteBuffer.allocate(ByteBuffer.java:335) в org.apache.mory.com

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) Это способность руководителя

Я думаю, что ваша конфигурация немного неверна. worker.childopts настройка передается каждой рабочей JVM, поэтому, когда вы устанавливаете -Xmx6g -Xms6g вы даете каждому из своих трех рабочих 6 ГБ памяти (всего 18 для узла)

Другие вопросы по тегам