Использование HDInsight Spark и Kafka

Завершено

Вам как инженеру данных необходимо определить наиболее подходящий тип кластера HDInsight для создания решения. При совместном использовании кластеры Spark и Kafka являются отличным способом приема и обработки потоков данных в режиме реального или практически реального времени.

Использование Kafka для приема данных в режиме реального времени

Apache Kafka можно использовать в качестве системы обмена сообщениями, системы подписки-публикации или в качестве платформы потоковой обработки. Она хранит данные в журнале, который можно прочитать в режиме реального времени, выполнить его постобработку, затем его могут прочитать одновременно несколько потребителей.

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

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

Структурированная потоковая передача Spark обладает функциями, которые недоступны на других платформах, такими как гарантии отказоустойчивости, возможность объединения пакетных и потоковых данных, возможность обработки данных, поступающих с задержкой, и многие другие функции, которые будут рассмотрены далее в этом модуле. Кроме того, с помощью Azure HDInsight можно создать виртуальную сеть, которая содержит и кластер Spark, и кластер Kafka. При наличии обоих кластеров в одной виртуальной сети кластер Spark может получить доступ к отдельным секциям данных в кластере Kafka вместо взаимодействия с кластерами или конечными точками. Предоставляя доступ к отдельным секциям данных, вы повышаете параллелизм в задании обработки в режиме реального времени, что обеспечивает лучшую пропускную способность.

Сценарии использования Kafka со Spark

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

Scenarios for using Kafka with Spark

  • Обнаружение мошенничества в режиме реального времени для приема данных финансовой транзакции и сравнение их с историческими шаблонами мошеннического поведения.
  • Управление автопарком и сценарии с использованием автомобилей, в которых вы принимаете данные устройств IoT и выполняете соответствующие действия при достижении порогового значения для данных от датчика (пробег, скорость, местоположение или температура).
  • Анализ навигации в решениях электронной коммерции для анализа того, как размещение страниц продуктов может повлиять на покупки и навигацию по интернет-магазину.
  • Мониторинг пациентов в режиме реального времени для просмотра данных о кровяном давлении и пульсе для оповещения врача, когда пациент находится в критическом состоянии.
  • Решения для интеллектуальной энергосистемы, которые используются для отслеживания энергопотребления и реагирования на изменения в потреблении.
  • Поведение клиента в магазинах для определения того, какие покупки совершаются в определенное время суток, чтобы запланировать перераспределение товара и заменить сотрудников на кассе.
  • ИТ-инфраструктура и мониторинг сети для отслеживания доступности сервера и пропускной способности, а также перенаправления трафика при необходимости.
  • Управление спросом и инвентаризацией в режиме реального времени для наблюдения за низким уровнем запасов и оперативного переупорядочивания или перемещения товаров.

Простой переход от пакетной обработки данных к потоковой

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