Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
Главная » 2011 » Сентябрь » 29 » Twitter открыл код системы анализа потоков данных Storm
08:20
Twitter открыл код системы анализа потоков данных Storm

Twitter   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.
Категория: Разное | Просмотров: 625 | Добавил: Disel | Теги: cluster, twitter, hadoop, analyze, database, storm, mapreduce | Рейтинг: 4.5/2
Всего комментариев: 2
avatar
1 Root • 12:47, 18.12.2011
вот тут найдешь наиболее популярные игры под Linux
avatar
2 skerroperycle • 12:30, 24.12.2011
тут был спам...
ComForm">
avatar
Профиль
Поиск
Категории раздела
Архив записей
Участвуйте в опросе
Какой у вас телефон?
Всего ответов: 150
Статистика

Яндекс.Метрика

Онлайн всего: 9
Гостей: 9
Пользователей: 0

Нас уже: 1302 Линуксоидов
Сегодня нас посетили следующие Линуксоиды -