2016-10-13 4 views
1

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

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

И от storm concepts:

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

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

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

А потом я запускаю топологию с topology.workers набором 3 (Кафка-дозатор параллелизма устанавливается в 1 и Solr-болт параллелизм установлен в 2, никаких других болтах).

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

Но когда я вхожу в штормовые машины и запускаю 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 

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

ответ

0

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

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