Секреты Storm станут известны уже в сентябре

Представители всемирно известного онлайн-сервиса для ведения микроблогов Twitter огласили решение об открытии первичных текстов системы Storm, которая применяется для анализа и обработки больших потоков данных. Событие намечается на 19 сентября в рамках конференции Strange Loop.

Данная система обрабатывает постоянно поступающие потоки данных. По своей функциональности её можно сравнить с Hadoop, но Storm отличается от последней тем, что процесс обработки информации происходит в онлайн-режиме. Главное же отличие Storm от аналогичных систем Oracle и SAP в том, что она не накапливает информацию в специальном хранилище, а сразу же распределяет ее по нескольким серверам. Вначале данный проект находился под руководством фирмы BackType, внедрившей систему с целью анализа различных событий, происходящих в микроблогах, сопоставления новых твитов и различных ссылок, находящихся в них. Однако месяц назад компания была приобретена сервисом Twitter.

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

Таким образом, главные особенности системы Storm - это:

  • достаточно простая в использовании модель программирования, которая даёт возможность значительно упрощать обработку поступающих данных в онлайн режиме;
  • поддержка всех языков программирования. И несмотря на то, что сам Storm создан на Clojure, для работы с ним можно выбрать любой язык, в том числе языки программирования Ruby и Python. Это обусловлено тем, что в системе имеется достаточно простой
  • коммуникационный протокол, позволяющий проводить адаптация любого языка программирования на достаточно легкой основе;
  • отказоустойчивость. Чтобы запустить задание для обработки данных необходимо лишь создать jar-файл с кодом. Все остальное Storm сделает самостоятельно: распределит созданный jar-файл по разным узлам кластера, подсоединит связанные с ним
  • обработчики и проведет мониторинг. Как только задание будет завершено, код на всех узлах автоматически отключится;
  • горизонтальная масштабируемость. Все необходимые вычисления идут в параллельном режиме. В случае возрастания нагрузки достаточно лишь подключить дополнительные узлы;
  • надежность. Storm даёт гарантию, что все сообщения будут полностью обработаны хотя бы один раз. Если сообщение без ошибок, то хватает единичной обработки, если же имеются ошибки – попытки обработки будут повторяться снова;
  • скорость. Для выполнения асинхронного обмена сообщениями в коде Storm используется система ZeroMQ.

Системы Storm применяется для:

  • обработки и обновления Баз Данных в онлайн режиме;
  • непрерывности вычисления: Storm в состоянии не только принимать непрерывные запросы, но и моментально обрабатывать их, передавая полученные данные по назначению в реальном времени;
  • непрекращаемости процессов: Storm может обеспечить параллельную работу для выполнения объёмных запросов. К примеру, она может в параллельном режиме обработать несколько поисковых запросов или выполнить несколько действий над достаточно большим набором множеств. Функция принимает сообщение, редактирует его и возвращает готовый результат.