Использование Apache Flink с Центрами событий Azure для Apache KafkaUse Apache Flink with Azure Event Hubs for Apache Kafka

В этом руководстве показано, как выполнять подключение Apache Flink к концентраторам событий с поддержкой Kafka без необходимости менять клиенты протоколов или запускать собственные кластеры.This tutorial shows you how to connect Apache Flink to Kafka-enabled event hubs without changing your protocol clients or running your own clusters. Центры событий Azure поддерживают Apache Kafka 1.0.Azure Event Hubs supports Apache Kafka version 1.0..

Одним из ключевых преимуществ использования платформы Apache Kafka является экосистема платформ, к которым она может подключиться.One of the key benefits of using Apache Kafka is the ecosystem of frameworks it can connect to. Центры событий с поддержкой Kafka сочетают в себе гибкость Kafka с масштабируемостью, согласованностью и поддержкой экосистемы Azure.Kafka enabled Event Hubs combines the flexibility of Kafka with the scalability, consistency, and support of the Azure ecosystem.

Из этого руководства вы узнаете, как выполнять следующие задачи:In this tutorial, you learn how to:

  • Создание пространства имен в Центрах событийCreate an Event Hubs namespace
  • Клонирование примера проектаClone the example project
  • Запуск производителя FlinkRun Flink producer
  • Запуск потребителя FlinkRun Flink consumer

Примечание

Этот пример можно найти на сайте GitHub.This sample is available on GitHub

Технические условияPrerequisites

Для работы с этим руководством выполните следующие предварительные требования:To complete this tutorial, make sure you have the following prerequisites:

  • Прочтите статью Центры событий Azure для Apache Kafka.Read through the Event Hubs for Apache Kafka article.
  • Подписка Azure.An Azure subscription. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начать работу.If you do not have one, create a free account before you begin.
  • Комплект разработчика Java (JDK 1.7+)Java Development Kit (JDK) 1.7+
    • В Ubuntu выполните команду apt-get install default-jdk, чтобы установить JDK.On Ubuntu, run apt-get install default-jdk to install the JDK.
    • Обязательно настройте переменную среды JAVA_HOME так, чтобы она указывала на папку, в которой установлен пакет JDK.Be sure to set the JAVA_HOME environment variable to point to the folder where the JDK is installed.
  • Скачайте и установите двоичный архив Maven.Download and install a Maven binary archive
    • В Ubuntu выполните команду apt-get install maven, чтобы установить Maven.On Ubuntu, you can run apt-get install maven to install Maven.
  • Git.Git
    • В Ubuntu выполните команду sudo apt-get install git, чтобы установить Git.On Ubuntu, you can run sudo apt-get install git to install Git.

Создание пространства имен в Центрах событийCreate an Event Hubs namespace

Для отправки и получения данных из любой службы концентраторов событий требуется пространство имен концентраторов событий.An Event Hubs namespace is required to send or receive from any Event Hubs service. Инструкции по получению конечной точки Kafka Центров событий см. в статье Создание Центров событий с поддержкой Kafka.See Create Kafka Enabled Event Hubs for information about getting an Event Hubs Kafka endpoint. Скопируйте строку подключения к Центрам событий для дальнейшего использования.Make sure to copy the Event Hubs connection string for later use.

Клонирование примера проектаClone the example project

Теперь, когда у вас есть строка подключения к Центрам событий с поддержкой Kafka, клонируйте репозиторий Центров событий Azure для Kafka и перейдите ко вложенной папке flink.Now that you have a Kafka-enabled Event Hubs connection string, clone the Azure Event Hubs for Kafka repository and navigate to the flink subfolder:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/flink

Используя предоставленный пример производителя Flink, отправьте сообщения в службу Центров событий.Using the provided Flink producer example, send messages to the Event Hubs service.

Предоставление конечной точки Kafka в Центрах событийProvide an Event Hubs Kafka endpoint

producer.configproducer.config

Обновите значения bootstrap.servers и sasl.jaas.config в producer/src/main/resources/producer.config, чтобы перенаправить производителя на конечную точку Kafka Центров событий с правильной аутентификацией.Update the bootstrap.servers and sasl.jaas.config values in producer/src/main/resources/producer.config to direct the producer to the Event Hubs Kafka endpoint with the correct authentication.

bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=FlinkExampleProducer
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
   username="$ConnectionString" \
   password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Запуск производителя из командной строкиRun producer from the command line

Чтобы запустить производитель из командной строки, создайте JAR-файл, а затем запустите его из Maven (или создайте JAR-файл с помощью Maven, затем запустите его в Java, добавив необходимые JAR-файлы Kafka в путь к классу):To run the producer from the command line, generate the JAR and then run from within Maven (or generate the JAR using Maven, then run in Java by adding the necessary Kafka JAR(s) to the classpath):

mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestProducer"

Производитель начнет отправлять события в концентратор событий с поддержкой Kafka в раздел test и выводить события в STDOUT.The producer will now begin sending events to the Kafka enabled Event Hub at topic test and printing the events to stdout.

Используя предоставленный пример потребителя, получите сообщения от Центров событий с поддержкой Kafka.Using the provided consumer example, receive messages from the Kafka enabled Event Hubs.

Предоставление конечной точки Kafka в Центрах событийProvide an Event Hubs Kafka endpoint

consumer.configconsumer.config

Обновите значения bootstrap.servers и sasl.jaas.config в consumer/src/main/resources/consumer.config, чтобы перенаправить потребителя на конечную точку Kafka в Центрах событий с правильной аутентификацией.Update the bootstrap.servers and sasl.jaas.config values in consumer/src/main/resources/consumer.config to direct the consumer to the Event Hubs Kafka endpoint with the correct authentication.

bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
group.id=FlinkExampleConsumer
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
   username="$ConnectionString" \
   password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Запуск потребителя из командной строкиRun consumer from the command line

Чтобы запустить потребителя из командной строки, создайте JAR-файл, а затем запустите его из Maven (или создайте JAR-файл с помощью Maven, затем запустите его в Java, добавив необходимые JAR-файлы Kafka в путь к классу):To run the consumer from the command line, generate the JAR and then run from within Maven (or generate the JAR using Maven, then run in Java by adding the necessary Kafka JAR(s) to the classpath):

mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestConsumer"

Если в концентраторе событий с поддержкой Kafka есть события (например, если ваш производитель также работает), потребитель начинает получать события из раздела test.If the Kafka-enabled event hub has events (for example, if your producer is also running), then the consumer now begins receiving events from the topic test.

Дополнительные сведения о подключении Flink к Kafka см. в руководстве по соединителю Kafka Flink.Check out Flink's Kafka Connector Guide for more detailed information about connecting Flink to Kafka.

Дальнейшие действияNext steps

Из этого руководства вы узнали, как выполнять подключение Apache Flink к концентраторам событий с поддержкой Kafka без необходимости менять клиенты протоколов или запускать собственные кластеры.In this tutorial, your learned how to connect Apache Flink to Kafka-enabled event hubs without changing your protocol clients or running your own clusters. В рамках данного руководства были выполнены следующие шаги.You performed the following steps as part of this tutorial:

  • Создание пространства имен в Центрах событийCreate an Event Hubs namespace
  • Клонирование примера проектаClone the example project
  • Запуск производителя FlinkRun Flink producer
  • Запуск потребителя FlinkRun Flink consumer

Дополнительные сведения о Центрах событий и Центрах событий для Kafka см. в статьях:To learn more about Event Hubs and Event Hubs for Kafka, see the following topic: