Обзор Apache Storm: что это такое, архитектура и причины использования

Опубликовано: 2020-03-23

Данные вездесущи, и с ростом цифровизации каждый день возникают новые проблемы, связанные с управлением данными и их обработкой.

Доступ к данным в режиме реального времени может показаться «хорошей возможностью», но для организации со значительными инвестициями в цифровую сферу это почти необходимость.

Оглавление

Какие лидеры отрасли используют Apache Storm?

Часто данные, которые не анализируются в данный момент времени, могут вскоре стать ненужными для компаний. Анализ данных для выявления закономерностей, которые могут быть полезны для компании, является обязательным требованием. Шаблоны не нужно выводить в течение длительного времени; должны быть извлечены только релевантные данные, которые диктуют текущие тенденции в режиме реального времени.

Учитывая потребности и отдачу от анализа данных в реальном времени, организации придумали различные инструменты аналитики. Одним из таких инструментов является Apache Storm.

Что такое Apache Storm?

Apache Storm, выпущенный Twitter, представляет собой распределенную сеть с открытым исходным кодом, которая обрабатывает большие объемы данных из различных источников. Инструмент анализирует его и обновляет результаты в пользовательском интерфейсе или любом другом назначенном месте без сохранения каких-либо данных. Узнайте больше об Apache Storm.

Apache Storm выполняет обработку неограниченных фрагментов данных в режиме реального времени, подобно тому, как Hadoop обрабатывает пакеты данных.

Первоначально созданный Натаном Марцем в компании социальной аналитики Black Type, позже он был приобретен и открыт для использования Twitter. Написанный на Java и Clojure, он продолжает оставаться стандартом для обработки данных в реальном времени в отрасли.

Архитектура Apache Storm

1. Нимб (главный узел)

Nimbus — это демон, т. е. программа, работающая в фоновом режиме без контроля со стороны интерактивного пользователя. Он работает для Apache Storm, аналогично работе трекера заданий в Hadoop. Его функция требует, чтобы он назначал коды и задачи машинам и даже следил за их работой.

2. Служба супервизора (рабочий узел)

Рабочие узлы в Storm запускают службу под названием Supervisor. Эти узлы отвечают за получение работы, назначенной Nimbus этим машинам. Помимо обработки всей работы, назначенной Nimbus, он запускает или останавливает процесс в соответствии с требованиями.

Каждый из этих процессов супервизорами помогает выполнить часть процесса для завершения топологии.

3. Топология

Топология Storm представляет собой сеть, состоящую из носиков и болтов. Каждый узел в системе присутствует для обработки логики и ссылок, а также для демонстрации путей, по которым будут проходить данные.

Всякий раз, когда топология отправляется в Storm, Nimbus консультируется с Супервайзерами по поводу рабочих узлов.

4. Стрим

Потоки — это последовательность кортежей, которые создаются и обрабатываются параллельно распределенным способом. Но что такое кортежи? Это основные структуры данных в Storm. Это именованные списки различных значений, таких как целые числа, байты, числа с плавающей запятой, массивы байтов и т. д.

5. Носик

Носик — это вход для всех данных в кортежах. Он отвечает за связь с фактическим источником данных, непрерывный прием данных, преобразование их в кортежи и, наконец, отправку их в болты для обработки.

6. Болты

Болты лежат в основе всей логической обработки в Storm. Поэтому они выполняют всю обработку топологии. Bolts можно использовать для различных функций, включая фильтрацию, функции, агрегирование и даже подключение к базам данных.

Узнайте больше об архитектуре Apache Spark.

Почему Апач Шторм?

Работа Apache Storm очень похожа на работу Hadoop. Оба являются распределенными сетями, используемыми для обработки больших данных. Они обеспечивают масштабируемость и широко используются для целей бизнес-аналитики. Итак, почему Шторм и почему он такой разный?

Вот основные причины, по которым стоит выбрать Storm:

  • Storm выполняет потоковую обработку в реальном времени, тогда как Hadoop в основном выполняет пакетную обработку.
  • Топология Storm работает до тех пор, пока не будет отключена пользователем. Процессы Hadoop в конечном итоге завершаются в последовательном порядке.
  • Процессы Storm могут получить доступ к тысячам данных в кластере за считанные секунды. Распределенная система Hadoop использует платформу MapReduce для создания огромного количества платформ, на которые уходят минуты или часы.

Организации, использующие Apache Storm

После развертывания Storm не только прост в эксплуатации, но и способен обрабатывать данные за считанные секунды. Учитывая широкие преимущества Storm, многие организации используют его.

1. Твиттер

Apache Storm поддерживает ряд функций в Twitter. Storm хорошо интегрируется с остальной инфраструктурой Twitter, в которую входят такие системы баз данных, как Cassandra, Memcached, Mesos, инфраструктура обмена сообщениями, системы мониторинга и оповещения.

2. Инфошимпанели

Infochimps использует Storm в качестве источника для одного из своих облачных сервисов данных — Data Delivery Services. Он использует Storm для обеспечения линейно расширяемого сбора данных, транспортировки и сложной потоковой обработки облачных сервисов.

3. Спотифай

Это, несомненно, лидер среди платформ для потоковой передачи музыки. Имея 50 миллионов пользователей по всему миру и 10 миллионов подписчиков, он предлагает огромное количество контента в режиме реального времени, такого как музыкальные рекомендации, аналитика, создание рекламы и т. д. Apache Storm помогает Spotify точно предоставлять эти функции.

Это также позволило компании легко поставлять отказоустойчивые системы распределения с малой задержкой.

4. Ракетное топливо

RocketFuel — это компания, которая использует возможности искусственного интеллекта для увеличения рентабельности инвестиций в маркетинг в цифровых медиа. Они хотят создать на Storm платформу, которая сможет отслеживать показы, клики, запросы ставок и т. д. в режиме реального времени. Предполагается, что эта платформа будет работать путем клонирования критически важных рабочих процессов конвейера ETL на базе Hadoop.

5. Флипборд

Flipboard — это универсальный магазин для просмотра и сохранения всех интересующих вас новостей. В компании Flipboard Apache Storm интегрирован с такими системами, как Hadoop, ElasticSearch, HBase и HDFS, что позволяет создавать чрезвычайно расширяемые платформы.

Здесь такие услуги, как поиск контента, аналитика в реальном времени, индивидуальная лента журналов и т. д. — все они предоставляются с помощью Apache Storm.

6. Уго

Wego — метапоисковая система для путешествий, созданная в Сингапуре. Сюда поступают данные со всего мира в разное время. С помощью Storm Wego может искать данные в режиме реального времени, решать любые сопутствующие проблемы и предоставлять конечным пользователям наилучшие результаты.

Читайте также: Роль искры Apache в больших данных.

Заключение

До написания Storm данные в реальном времени обрабатывались с использованием очередей и рабочих потоков. Некоторые очереди будут постоянно записывать данные, а другие постоянно их читать и обрабатывать. Эта структура была не только чрезвычайно хрупкой, но и отнимала много времени. Много времени будет потрачено на то, чтобы позаботиться о потере данных, поддерживать всю структуру, сериализовать/десериализовать сообщения, а не выполнять реальную работу.

Apache Storm — это умный способ просто отправить данные как Spout и Bolt, а остальную часть обработки — как топологию.

Apache Storm — это распространенная вычислительная среда с открытым исходным кодом и потоковой обработкой для анализа данных в реальном времени. Многие организации уже используют его; на самом деле, некоторые из них разрабатывают с его помощью лучшее и полезное программное обеспечение.

Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Возглавьте технологическую революцию, основанную на данных

400+ часов обучения. 14 языков и инструментов. Статус выпускника IIIT-B.
Расширенная программа сертификации в области больших данных от IIIT Bangalore