2016-09-01 5 views
0

т. Е. Если параллелизм равен 2, болт запускается на двух разных серверах, а если параллелизм равен 3, болт запускается на 3 разных серверах. Это важно для меня, потому что я не хочу, чтобы все задачи выполнялись только на одном сервере, это будет слишком медленно.Когда я использую штормовой трезубец, если я устанавливаю параллельность не менее 2, как я могу заставить всех исполнителей работать на разных серверах не только на одном сервере?

ответ

0

Попробуйте увеличить параметр конфигурации «количество работников» (значение по умолчанию равно 1) с помощью

Config cfg = new Config(); 
cfg.setNumWorkers(...); 

Вы также можете ограничить количество рабочих на хост с помощью параметра storm.yaml конфигурации supersior.slots.ports - для каждого порта , можно запустить один рабочий JVM, поэтому, если вы предоставите только один порт для этой конфигурации, начнется только одна рабочая JVM. Просто имейте в виду, что это может ограничить количество топологий, которые вы можете запустить. Единственный рабочий JVM будет выполнять только код из одной топологии (чтобы изолировать топологии друг от друга).

+0

Спасибо. Фактически я делал так же, как вы говорите, но я нахожу для некоторых болтов, даже я установил число рабочих более 1 и установил параллельность болтов более 1, один болт только запускает несколько процессов только на одном сервере ... Что в этом плохого? – winfield

+0

Продлил мой ответ. –

+0

Спасибо, это единственный способ сделать это? Я думаю, что лучше не ограничивать номер слота на хост, а тем временем мы делаем исполнителей на разных серверах :) – winfield