Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10385
  комментариев: 3200

Twitter заявил о скором открытии кода системы Storm


Разработчики сервиса Twitter заявили о решении открыть исходные тексты системы Storm, используемой для анализа больших потоков данных. Код планируется открыть 19 сентября во время проведения конференции Strange Loop. Задержка с открытием кода объясняется необходимостью приведения в порядок документации и подготовке серии руководств для быстрого внедрения системы.

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

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

Изначально проект Storm развивался компанией BackType, которая была куплена Twitter в прошлом месяце. Технология Storm использовалась для обеспечения работы сервиса BackTweets, предназначенного для анализа отражения определенных событий в микроблогах, путем сопоставления на лету новых твитов и используемых в них ссылок. Например, компания получала возможность оценить, как внешние ссылки или публикуемые в твиттере анонсы, ретранслируются другими участниками. Несмотря на кажущуюся простоту, для непрерывно поступающих потоков задача является достаточно сложной: чтобы определить число уникальных просмотров URL через Twitter нужно посчитать число сообщений с данным URL, сформировать общую выборку из всех читателей (followers) микроблогов в которых упомянут URL и отсеять среди них дубликаты.

Основные особенности Storm:
Простая модель программирования, значительно упрощающая обработку данных в режиме реального времени;
Поддержка любых языков программирования. Сам Storm написан на языке Clojure и выполняется внутри виртуальной машины JVM, но для работы со Storm может быть использован любой язык. Уже созданы модули для языков Ruby и Python, адаптация для других языков не вызывает сложности благодаря очень простому коммуникационному протоколу, для реализации поддержки которого требуется около 100 строк кода;
Отказоустойчивость: для запуска задания по обработке данных требуется сформировать jar-файл с кодом. Storm самостоятельно распространит данный jar-файл по узлам кластера, подключит связанные с ним обработчики и организует мониторинг. При завершении задания код будет автоматически отключен на всех узлах;
Горизонтальная масштабируемость. Все вычисления производятся в параллельном режиме, при возрастании нагрузки к кластеру достаточно просто подключить новые узлы;
Надежность. Storm гарантирует, что каждое поступающее сообщение будет полностью обработано как минимум один раз. Один раз сообщение будет обработано только в случае отсутствия ошибок при прохождении всех обработчиков, если возникли проблемы, то неудачные попытки обработки будут повторены.
Скорость. Код Storm написан с оглядкой на высокую производительность и использует для быстрого асинхронного обмена сообщениями систему ZeroMQ.
Области применения:
Обработка потоков новых данных или обновлений БД в реальном времени.
Непрерывные вычисления: Storm может выполнять непрерывные запросы и обрабатывать непрерывные потоки, передавая результаты обработки клиенту в режиме реального времени. Например, можно сформировать постоянно обновляемую страницу с наиболее обсуждаемыми темами в Twitter;
Распределенный удаленный вызов процедур (RPC): Storm может быть использован для обеспечения параллелизма выполнения ресурсоёмких запросов. Задание ("топология") в Storm представляет собой распределенную по узлам функцию, которая ожидает поступления сообщений, которые нужно обработать. После приема сообщения, функция обрабатывает его в локальном контексте и возвращает результат. Примером использования распределенного RPC может быть параллельная обработка поисковых запросов или выполнение операций над большим набором множеств.


Источник: opennet.ru

  8 августа 2011 808
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 5 и 11*:            


Хостеры (2472)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)




Отправить сообщение администратору

Сумма чисел 14 и 3*:


Яндекс цитирования
сообщить о неточности