Новая версия Apache Storm имеет улучшенную производительность, новые API и управление состоянием среди длинного списка других новых функций и улучшений.
Apache Storm — это распределенная система аналитики в реальном времени для Hadoop, которую можно использовать для обработки больших объемов быстро меняющихся данных.
Storm 1.0 до 16 раз быстрее, чем предыдущие версии, с уменьшенной задержкой до 60%. Разработчики говорят, что большинство пользователей могут ожидать, что новая версия будет работать в три раза быстрее.
Дополнением к новой версии является Storm Pacemaker. Это необязательный демон Storm, предназначенный для обработки пульса рабочих процессов, являющийся альтернативой ZooKeeper. По мере увеличения масштаба Storm ZooKeeper становится узким местом из-за большого количества записей от рабочих, выполняющих тактовые импульсы. Pacemaker — это хранилище в памяти, поэтому он позволяет избежать чрезмерного сетевого трафика, пытаясь поддерживать согласованность. Он функционирует как простое хранилище ключей / значений в памяти с похожими на ZooKeeper ключами в стиле каталога и значениями байтовых массивов.
Первое из улучшений API — это API распределенного кеша. Это можно использовать для обмена файлами (BLOB) между топологиями. Storm 1.0 поставляется с двумя версиями API распределенного кеша: одна поддерживается локальной файловой системой на узлах Supervisor, а другая — Apache Hadoop HDFS.
Также есть новый собственный потоковый Window API. Предыдущие версии Storm полагались на разработчиков для создания собственной логики работы с окнами. Не существовало рекомендованных или высокоуровневых абстракций, которые можно было бы использовать для определения окна стандартным способом в топологии. В новой версии есть собственный оконный API, который позволяет вам указывать Windows с двумя параметрами — длиной или продолжительностью окна и интервалом, с которым окно скользит. Вычисления на основе окон распространены при потоковой обработке, когда неограниченный поток данных разделяется на конечные наборы на основе некоторых критериев (например, времени), и вычисления применяются к каждой группе событий.
Еще одно улучшение в этом выпуске — HA Nimbus. Хотя служба Storm Nimbus может быть потеряна без влияния на работающие топологии, потеря узла Nimbus действительно ухудшает возможность развертывания новых топологий и переназначения работы в кластере. Чтобы решить эту проблему, была добавлена поддержка HA Nimbus. Несколько экземпляров службы Nimbus работают в кластере и выполняют выбор лидера при выходе из строя узла Nimbus, а хосты Nimbus могут присоединиться или покинуть кластер в любое время.
Другие улучшения включают API с отслеживанием состояния с автоматическим установлением контрольных точек; механизм автоматического противодавления, который можно использовать для регулирования входа в топологию; и планировщик с учетом ресурсов, который учитывает ресурсы памяти и ЦП, доступные в кластере.