Физическая настройка кластера:
Термин узел обычно относится к физической машине (или VM) в кластере. На каждом узле супервайзер работает в собственной JVM. Супервайзер имеет рабочие слоты. Это логическая конфигурация и указывает, сколько работника может быть запущено супервизором. Каждый рабочий (если запущен) работает в собственной JVM (таким образом, некоторые люди называют это рабочим процессом). Подводя итог: на узле есть один диспетчер JVM и рабочие JVM с числовыми рабочими местами. Следовательно, узел, на котором запущен рабочий JVM, можно назвать рабочим узлом. В то время как супервизор работает все время, рабочие запускаются, если необходимо, то есть, если топологии развернуты и прекращаются, когда топология убита. Внутри работника исполнителей запущены как темы (т. Е. Каждый исполнитель сопоставляет собственную тему).
Логической Настройка топологии:
топологии строить из носиков (также называемые источники, то есть, операторы, не имеющие входящего потока данных) и Болтов (регулярные операторы с по меньшей мере, одного входящим потоком данных и любое количество исходящих потоков данных - если нет исходящего потока данных, Болт также называется раковиной). Для каждого Spout/Bolt можно настроить два параметра:
- количество задач
- Присадка (степень параллельности, называется
parallelism_hint
), то есть, число исполнителей вы хотите иметь для носиком/Болт
Задачи являются логическая единица работы (то есть, что-то пассивное). Предположим, вы используете шаблон подключения fieldsGrouping
. Таким образом, поток данных разбивается на множество задач многих подпотоков. Задачи назначаются исполнителям, т. Е. Каждый исполнитель обрабатывает одну или несколько задач. Это означает, что у вас не может быть меньше задач, чем исполнителей (т. Е. Параллелизма); в противном случае будет поток без какой-либо работы. (https://storm.apache.org/documentation/Understanding-the-parallelism-of-a-Storm-topology.html). Кроме того, есть много других вопросов о SO о задачах/исполнителях в Storm.
И последнее, но не менее важное: вы можете настроить numberOfWorkers
для топологии. Этот параметр указывает, сколько рабочих должно быть запущено для запуска топологии. Общее количество исполнителей для топологии - это сумма допсов по всем Spouts/Bolts. Все исполнители будут равномерно распределены по всем доступным рабочим JVM.
Кроме того, один рабочий может запускать только исполнители одной топологии. Это делается для причин отказоустойчивости, т. Е. Топологии изолированы друг от друга. В то же время сам рабочий может запускать любое количество исполнителей.