Apache Storm 2.0 - релиз системы распределённой обработки событий

Apache Storm 2.0 - релиз системы распределённой обработки событий

Состоялся релиз системы распределённой обработки событий Apache Storm 2.0, примечательный переходом на новую архитектуру, реализованную на языке Java, вместо ранее применяемого языка Clojure.

Проект позволяет организовать гарантированную обработку различных событий в режиме реального времени. Например, Storm можно применять для анализа потоков данных в режиме реального времени, выполнения задач для машинного обучения, организации непрерывных вычислений, реализации RPC, ETL и т.п. Система поддерживает кластеризацию, создание отказоустойчивых конфигураций, режим гарантированной обработки данных и обладает высокой производительностью, достаточной для обработки более миллиона запросов в секунду на одном узле кластера.

Поддерживается интеграция с различными системами обработки очередей и технологиями баз данных. Архитектура Storm подразумевает приём и обработку неструктурированных постоянно обновляемых потоков данных с использование произвольных сложных обработчиков с возможностью секционирования между различными стадиями вычислений. Проект был передан сообществу Apache после поглощения Twitter компании BackType, изначально разработавшей фреймворк. На практике Storm применялся в BackType для анализа отражения событий в микроблогах, путём сопоставления на лету новых твитов и используемых в них ссылок (например, производилась оценка, как внешние ссылки или публикуемые в Twitter анонсы, ретранслируются другими участниками).

Функциональность Storm сравнивается с платформой Hadoop, при этом ключевым отличием является то, что данные не размещены в хранилище, а поступают извне и обрабатываются в режиме реального времени. В Storm нет встроенной прослойки для организации хранилища и аналитический запрос начинает применяться к поступающим данным до тех пор, пока не будет отменен (если в Hadoop используются занимающие конечное время MapReduce-работы, то в Storm применяется идея непрерывно выполняемых "топологий"). Выполнение обработчиков может быть распределено на несколько серверов - Storm автоматически распараллеливает работу с потоками на разные узлы кластера.

Изначально система была написана на языке Clojure и выполняется внутри виртуальной машины JVM. В фонде Apache была запущена инициативы по переводу Storm на новое ядро, написанное на Java, результаты которой предложены в выпуске Apache Storm 2.0. Все базовые компоненты платформы переписаны на Java. Поддержка написания обработчиков на Clojure сохранена, но теперь предлагается в виде биндингов. Для работы Storm 2.0.0 требуется наличие Java 8. Полностью переработана модель многопоточной обработки, что позволило добиться заметного прироста производительности (для некоторых топологий задержки сократились на 50-80%).

В новой версии также предложен новый типизированный API Streams, позволяющий задавать обработчики, используя операции в стиле функционального программирования. Новый API реализован поверх штатного базового API и поддерживает автоматическое объединение операций для оптимизации их обработки. В API Windowing для оконных операций добавлена поддержка сохранения и восстановления состояния в бэкенде.

В планировщик запуска обработчиков добавлена поддержка учёта дополнительных ресурсов при принятии решений, не ограничивающихся CPU и памятью, таких как параметры сети и GPU. Внесено большое число улучшений, связанных с обеспечением интеграции с платформой Kafka. Расширена система контроля доступа, в которой появилась возможность создания групп администраторов и делегирования токенов. Добавлены улучшения, связанные с поддержкой SQL и метрик. В интерфейсе администратора появились новые команды для отладки состояния кластера.

Области применения Storm:

Особенности Storm:


Опубликовано: 2 июня 2019


Выбрать программное обеспечение


Напишите запрос на программное обеспечение нам в Viber
+380503703627


Контакты Ай Ти Про

info@itpro.ua
Телефон: +38 (044) 257-24-44