The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

28.09.2011 23:04

Cервис Twitter открыл код проекта Storm, предназначенного для анализа больших непрерывно поступающих потоков данных, таких как миллионы лент в Twitter. Продукт был создан компанией BackType, которая была куплена Twitter в июле этого года. Код открыт под лицензией Eclipse Public Licence 1.0. Система написана на языке Clojure и выполняется внутри виртуальной машины JVM, некоторые скрипты написаны на языке Python.

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

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

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

  • Обработка потоков новых данных или обновлений БД в реальном времени;
  • Непрерывные вычисления: Storm может выполнять непрерывные запросы и обрабатывать непрерывные потоки, передавая результаты обработки клиенту в режиме реального времени. Например, можно сформировать постоянно обновляемую страницу с наиболее обсуждаемыми темами в Twitter;
  • Распределенный удаленный вызов процедур (RPC): Storm может быть использован для обеспечения параллелизма выполнения ресурсоёмких запросов. Задание ("топология") в Storm представляет собой распределенную по узлам функцию, которая ожидает поступления сообщений, которые нужно обработать. После приема сообщения, функция обрабатывает его в локальном контексте и возвращает результат. Примером использования распределенного RPC может быть параллельная обработка поисковых запросов или выполнение операций над большим набором множеств.

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

  • Простая модель программирования, значительно упрощающая обработку данных в режиме реального времени;
  • Поддержка любых языков программирования. Уже созданы модули для языков Java, Ruby и Python, адаптация для других языков не вызывает сложности благодаря очень простому коммуникационному протоколу, для реализации поддержки которого требуется около 100 строк кода;
  • Отказоустойчивость: для запуска задания по обработке данных требуется сформировать jar-файл с кодом. Storm самостоятельно распространит данный jar-файл по узлам кластера, подключит связанные с ним обработчики и организует мониторинг. При завершении задания код будет автоматически отключен на всех узлах;
  • Горизонтальная масштабируемость. Все вычисления производятся в параллельном режиме, при возрастании нагрузки к кластеру достаточно просто подключить новые узлы;
  • Надежность. Storm гарантирует, что каждое поступающее сообщение будет полностью обработано как минимум один раз. Один раз сообщение будет обработано только в случае отсутствия ошибок при прохождении всех обработчиков, если возникли проблемы, то неудачные попытки обработки будут повторены.
  • Скорость. Код Storm написан с оглядкой на высокую производительность и использует для быстрого асинхронного обмена сообщениями систему ZeroMQ.


  1. Главная ссылка к новости (http://www.h-online.com/open/n...)
  2. OpenNews: Twitter открыл код Bootstrap, набора шаблонов для формирования типовых элементов web-страниц
  3. OpenNews: Cisco, Fujitsu и Twitter присоединились к инициативе по защите Linux от патентных претензий
  4. OpenNews: Проект Twitter представил раздел, посвященный своим открытым разработкам
  5. OpenNews: Часть Twitter переводят с языка Ruby на Scala
  6. OpenNews: Google разрешил проекту Hadoop использовать свои патенты, связанные с MapReduce
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/31888-twitter
Ключевые слова: twitter, storm, database, cluster, hadoop, mapreduce, analyze
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:37, 28/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А картинку с китом тоже выложили в составе этой системы?
    А очень уж мне нравится.
     
  • 1.3, xanten (?), 01:23, 29/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересная новость, плюсую.
     
  • 1.4, XoRe (ok), 01:34, 29/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Штука интересная, только насчет сферы применения...
    Не всякий проект дорастет до такого, чтобы понадобилась такая система.
     
     
  • 2.5, КО (?), 07:48, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю это будет интересно разным стартаперам, которые делают риалтайм системы.
     
     
  • 3.6, mator (?), 10:49, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ну и военным судя по-всему полезно будет посмотреть
     

  • 1.7, MrClon (?), 13:52, 29/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Штука интересная, но новость боянистая, ещё в начале месяца (если не в прошлом месяце) читал об этом, только не помню где.
     
     
  • 2.8, Fyjybvecjh (?), 14:31, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы где-топропустили новость о закрытии.
     
  • 2.9, Аноним (-), 14:34, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Штука интересная, но новость боянистая, ещё в начале месяца (если не в
    > прошлом месяце) читал об этом, только не помню где.

    Здесь же и была новость, но только о том, что Twitter планирует открыть код Storm. Сейчас новость о том, что они сдержали обещание и открыли код.

     
     
  • 3.10, Mna (??), 20:31, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Новости тут двойные часто:
    как в Multi-tier architecture:
    1) обещали сделать тото (Request send)
    2) сделали то-то /обещание сдержали (Response received/Answer received)

    только вот когда ответа не получилось, по таймауту ничего не происходит, нет новости вида:
    3) хотя обещали 3 месяца назад за две недели сделать то-то но не сделали ничего и вообще молчок

    А ведь стоило.

    И вообще, стоило сделать каклй-то репозитарий-рейтинг заявлений, наподобие кредитного

     
     
  • 4.12, Аноним (-), 20:54, 29/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    согласен
    И разработчиком приятно, что не забыты
     

  • 1.11, Аноним (-), 20:52, 29/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Twitter как всегда молодцы
    http://www.pcworld.com/article/240605/faq_which_social_networks_fight_for_you
     
  • 1.13, Аноним (-), 01:43, 30/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошо бы побольше деталей. А то теория как ты заткнулась на слове "топологий"... Есть хоть кто-то кто понял о чем речь в статье?
     
  • 1.14, Аноним (-), 19:33, 30/09/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ССПТ-2 - это сертифицированное ФСТЭК и ФСБ средство защиты информации нового поколения, реализующее функции межсетевого экрана, но при этом остающееся "невидимым" для любых протоколов и тестовых воздействий, что достигается за счет отсутствия физических и логических адресов на его фильтрующих интерфейсах. ССПТ-2 невозможно
     
     
  • 2.15, FK (?), 13:06, 03/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > ССПТ-2 - это сертифицированное ФСТЭК и ФСБ средство защиты информации нового поколения,
    > реализующее функции межсетевого экрана, но при этом остающееся "невидимым" для любых
    > протоколов и тестовых воздействий, что достигается за счет отсутствия физических и
    > логических адресов на его фильтрующих интерфейсах. ССПТ-2 невозможно

    Да ой ли?
    Берем Фрю, настраиваем бридж, к нему прикрепляем шифрованный IPSEC-туннель (gif), на другой стороне туннеля - идентичная конфа. Нет IP, по тестовому воздействию определяешь разве что задержку, есть шифрование.
    Правда, ФСБ не сертифицировано )

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру