Преобразует ли порт в supervisor.slots.ports в одну физическую JVM?

#jvm #apache-storm

#jvm #apache-storm

Вопрос:

Из документов storm:

supervisor.slots.ports: «Для каждой рабочей машины вы настраиваете, сколько рабочих выполняется на этой машине с помощью этой конфигурации. Каждый рабочий использует один порт для приема сообщений, и этот параметр определяет, какие порты открыты для использования. Если вы определите здесь пять портов, то Storm выделит до пяти рабочих для запуска на этой машине. »

И из концепций storm:

Рабочие: топологии выполняются в одном или нескольких рабочих процессах. Каждый рабочий процесс является физической JVM и выполняет подмножество всех задач для топологии.

Мой storm.yaml определяет:

 supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703
 

А затем я запускаю топологию с topology.workers установленным значением 3 (для kafka-spout-parallelism установлено значение 1, а для solr-bolt-parallelism установлено значение 2, других болтов нет).

Storm-ui также показывает, что моя топология работает нормально с 1 носиком и 2 болтами.

Но когда я захожу на компьютеры storm и запускаю ps -aef | grep storm или jps -l , я нигде не вижу процессов JVM для рабочих. Я вижу только следующие процессы:

Машина 1:

 jps -l
30675 backtype.storm.daemon.supervisor
30583 backtype.storm.daemon.logviewer
 

Машина 2:

 jps -l
6818 backtype.storm.ui.core
6995 backtype.storm.daemon.supervisor
6739 backtype.storm.daemon.nimbus
6904 backtype.storm.daemon.logviewer
 

Разве storm не создает одну физическую JVM на работника? И разве это не переводит в одну JVM на порт, упомянутый в supervisor.slots.ports ?

Ответ №1:

Один рабочий слот равен одному слоту JVM. Слоты используются только при развертывании топологии.

Возможно, вы проверили процессы до фактического запуска рабочих. Проверьте пользовательский интерфейс Storm, чтобы убедиться, что топология запущена, работает и обрабатывает данные. Если это не так, используйте средство просмотра журналов для поиска ошибок. Возможно, рабочие сбой из-за неперехваченных исключений.