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

diagram-kafka

Развертывание Kafka в Amazon EC2 позволяет получить высокопроизводительное масштабируемое решение для сбора потоковых данных. Чтобы выполнить развертывание Kafka в Amazon EC2, потребуется выбрать и распределить типы инстансов EC2, установить и настроить программные компоненты, включая Kafka и Apache Zookeeper, а затем распределить блочное хранилище, необходимое для обеспечения пропускной способности потоковых данных, с помощью Amazon Elastic Block Store (EBS). Чтобы помочь кластеру Kafka справиться с непредвиденными событиями, например с пиковыми объемами данных с превышением ресурсов потока, можно настроить репликацию с помощью решения Apache Zookeeper, выполняющего мониторинг узлов кластера Kafka и координирующего распределение процессов между узлами. После установки Kafka необходимо выполнить развертывание HTTPS, задать источник сертификатов и настроить инстансы Kafka на работу с SSL, чтобы обеспечить безопасность кластера Kafka.

Кластеры Kafka, работающие в сервисе Amazon EC2, являются надежной и масштабируемой инфраструктурной платформой, однако они требуют мониторинга, масштабирования и управления парком серверов, обслуживания программного стека и управления безопасностью кластера, что в сумме может составлять серьезную административную нагрузку. Для решения этой проблемы можно использовать Amazon Kinesis Streams – управляемый сервис, специально разработанный для облегчения работы с потоковыми данными на платформе AWS. Он осуществляет захват и надежное хранение потоковых данных, а также делает их доступными в режиме реального времени для приложений, выполняющих обработку потоковых данных. Распределение управляемой системы сбора потоковых данных, использующей Amazon Kinesis Streams, выполняется с помощью нескольких щелчков мышью в Консоли Amazon Kinesis. В целях обеспечения надежности данных Amazon Kinesis Streams выполняет автоматическую репликацию данных в трех зонах доступности. Масштабирование, обеспечение безопасности и управление потоками легко осуществляется посредством API и встроенной интеграции с другими сервисами AWS, включая AWS IAM, Amazon CloudWatch и AWS CloudTrail.

Для обработки данных в потоках можно использовать приложения, разработанные в Amazon Kinesis Analytics или других интерфейсах обработки данных, например Spark Streaming и Kinesis Client Library (KCL). Прошедшие обработку данные могут использоваться для наполнения информационных панелей, работающих в режиме реального времени, выдачи предупреждений, динамического регулирования цен, показа целевой рекламы, а также решения ряда других задач.

Подробное сравнение Amazon Kinesis и Kafka см. здесь.

440x220_APN-Blog

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

Прочесть публикацию полностью »

В этой публикации мы будем использовать публичные потоки Twitter для анализа действий кандидатов – республиканцев и демократов – в режиме, близком к реальному времени. Мы покажем, как интегрировать Amazon Kinesis Firehose, AWS Lambda (функционал Python) и Amazon Elasticsearch для создания комплексной исследовательской платформы, работающей в режиме, близком к реальному времени.

Прочесть запись полностью »

В этой публикации рассматривается простой и эффективный способ сохранения данных из Amazon Kinesis Streams в Amazon S3 с помощью сервисов AWS Lambda и Amazon Kinesis Firehose.

Прочесть запись полностью »

Другие записи, посвященные потоковой передаче и большим данным, см. в блоге AWS Big Data Blog »


Начать работу с Amazon Kinesis очень просто. Войдите в Консоль управления AWS и запустите Amazon Kinesis.

 

Начать работу с Amazon Kinesis