Учебники

Apache Storm — кластерная архитектура

Одним из главных достоинств Apache Storm является то, что он является отказоустойчивым и быстрым без распределенного приложения «Single Point of Failure» (SPOF). Мы можем установить Apache Storm на столько систем, сколько необходимо для увеличения емкости приложения.

Давайте посмотрим, как спроектирован кластер Apache Storm и его внутренняя архитектура. Следующая диаграмма изображает дизайн кластера.

Zookeeper Framework

Apache Storm имеет два типа узлов: Nimbus (главный узел) и Supervisor (рабочий узел). Нимб является центральным компонентом Apache Storm. Основная задача Nimbus — запуск топологии Storm. Nimbus анализирует топологию и собирает задачу для выполнения. Затем он распространит задачу среди доступного руководителя.

У супервайзера будет один или несколько рабочих процессов. Руководитель делегирует задачи рабочим процессам. Рабочий процесс порождает столько исполнителей, сколько необходимо и запускает задачу. Apache Storm использует внутреннюю распределенную систему обмена сообщениями для связи между нимбомом и супервизорами.

Компоненты Описание
нимб Nimbus — главный узел кластера Storm. Все остальные узлы в кластере называются рабочими узлами . Главный узел отвечает за распределение данных между всеми рабочими узлами, назначение задач рабочим узлам и мониторинг сбоев.
Руководитель Узлы, которые следуют инструкциям, данным нимбом, называются супервизорами. Супервизор имеет несколько рабочих процессов и управляет рабочими процессами для выполнения задач, назначенных нимбом.
Рабочий процесс Рабочий процесс будет выполнять задачи, связанные с определенной топологией. Рабочий процесс не будет запускать задачу сам по себе, вместо этого он создает исполнителей и просит их выполнить определенную задачу. Рабочий процесс будет иметь несколько исполнителей.
душеприказчик Исполнитель — не что иное, как единственный поток, порожденный рабочим процессом. Исполнитель выполняет одну или несколько задач, но только для определенного излива или затвора.
задача Задача выполняет фактическую обработку данных. Итак, это либо носик, либо болт.
ZooKeeper Framework

Apache ZooKeeper — это сервис, используемый кластером (группой узлов) для координации между собой и поддержания общих данных с помощью надежных методов синхронизации. Nimbus не имеет состояния, поэтому от ZooKeeper зависит состояние рабочего узла.

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

Apache ZooKeeper — это сервис, используемый кластером (группой узлов) для координации между собой и поддержания общих данных с помощью надежных методов синхронизации. Nimbus не имеет состояния, поэтому от ZooKeeper зависит состояние рабочего узла.

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

Шторм без гражданства по своей природе. Несмотря на то, что природа без сохранения состояния имеет свои недостатки, она на самом деле помогает Storm обрабатывать данные в реальном времени самым лучшим и быстрым способом.

Шторм не совсем без гражданства, хотя. Он хранит свое состояние в Apache ZooKeeper. Поскольку состояние доступно в Apache ZooKeeper, сбойный нимб можно перезапустить и заставить работать с того места, где он ушел. Обычно такие сервисные инструменты мониторинга, как monit , отслеживают Nimbus и перезапускают его в случае сбоя.

Apache Storm также имеет продвинутую топологию, называемую топологией Trident, с поддержкой состояний и предоставляет высокоуровневый API, такой как Pig. Мы обсудим все эти функции в следующих главах.