Utilisation d’Apache Flink avec Azure Event Hubs pour Apache Kafka
Ce tutoriel vous montre comment connecter Apache Flink à un Event Hub sans modifier vos protocoles clients ni exécuter vos propres clusters. Pour plus d'informations sur la prise en charge par Event Hubs du protocole consommateur Apache Kafka, consultez Event Hubs pour Apache Kafka.
Dans ce tutoriel, vous allez apprendre à :
- Créer un espace de noms Event Hubs
- Cloner l’exemple de projet
- Exécuter le producteur de Flink
- Exécuter le consommateur de Flink
Notes
Cet exemple est disponible sur GitHub.
Prérequis
Pour suivre ce tutoriel, vérifiez que les conditions préalables ci-dessous sont bien remplies :
- Lisez l’article Event Hubs pour Apache Kafka.
- Un abonnement Azure. Si vous n’en avez pas, créez un compte gratuit avant de commencer.
- Java Development Kit (JDK) 1.7+
- Sur Ubuntu, exécutez
apt-get install default-jdk
pour installer le JDK. - Veillez à définir la variable d’environnement JAVA_HOME pour qu’elle pointe vers le dossier dans lequel le JDK est installé.
- Sur Ubuntu, exécutez
- Téléchargé et installé une archive binaire Maven.
- Sur Ubuntu, vous pouvez exécuter
apt-get install maven
pour installer Maven.
- Sur Ubuntu, vous pouvez exécuter
- Git
- Sur Ubuntu, vous pouvez exécuter
sudo apt-get install git
pour installer Git.
- Sur Ubuntu, vous pouvez exécuter
Créer un espace de noms Event Hubs
Un espace de noms Event Hubs est requis pour échanger avec tout service Event Hubs. Pour obtenir des instructions sur la création d’un espace de noms et d’un Event Hub, consultez Créer un Event Hub. Veillez à copier la chaîne de connexion Event Hubs pour une utilisation ultérieure.
Cloner l’exemple de projet
Maintenant que vous disposez d’une chaîne de connexion Event Hubs, clonez le dépôt Azure Event Hubs pour Kafka, puis accédez au sous-dossier flink
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/flink
Exécuter le producteur de Flink
À l’aide de l’exemple du producteur Flink fourni, envoyez des messages au service Event Hubs.
Fournir un point de terminaison Event Hubs Kafka
producer.config
Mettez à jour des valeurs bootstrap.servers
et sasl.jaas.config
dansproducer/src/main/resources/producer.config
pour diriger le producteur vers le point de terminaison Event Hubs Kafka avec l’authentification correcte.
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}";
Important
Remplacez {YOUR.EVENTHUBS.CONNECTION.STRING}
par la chaîne de connexion de votre espace de noms Event Hubs. Pour savoir comment obtenir la chaîne de connexion, consultez Obtenir une chaîne de connexion Event Hubs. Voici un exemple de configuration : sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Exécuter le producteur depuis la ligne de commande
Pour exécuter le producteur depuis la ligne de commande, générez le fichier JAR, puis exécutez depuis Maven (ou générez le fichier JAR avec Maven, puis exécutez dans Java en ajoutant le ou les fichiers JAR Kafka au paramètre classpath) :
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestProducer"
le producteur va maintenant commencer à envoyer des événement à l’Event Hub au niveau de la rubrique test
et imprimer les événements dans stdout.
Exécuter le consommateur de Flink
À l’aide de l’exemple de contrôle serveur consommateur fourni, recevez des messages à partir de l’Event Hub.
Fournir un point de terminaison Event Hubs Kafka
consumer.config
Mettez à jour des valeurs bootstrap.servers
et sasl.jaas.config
dansconsumer/src/main/resources/consumer.config
pour diriger le contrôle serveur consommateur vers le point de terminaison Event Hubs Kafka avec l’authentification correcte.
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}";
Important
Remplacez {YOUR.EVENTHUBS.CONNECTION.STRING}
par la chaîne de connexion de votre espace de noms Event Hubs. Pour savoir comment obtenir la chaîne de connexion, consultez Obtenir une chaîne de connexion Event Hubs. Voici un exemple de configuration : sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Exécuter le contrôle serveur consommateur depuis la ligne de commande
Pour exécuter le contrôle serveur consommateur depuis la ligne de commande, générez le fichier JAR, puis exécutez depuis Maven (ou générez le fichier JAR avec Maven, puis exécutez dans Java en ajoutant le ou les fichiers JAR Kafka au paramètre classpath) :
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestConsumer"
Si l’Event Hub a des événements (par exemple, si votre producteur est également en cours d’exécution), le contrôle serveur consommateur commence maintenant à recevoir les événements provenant de la rubrique test
.
Extraire le Guide de connecteur Kafka de Flink pour plus d’informations sur la connexion Flink à Kafka.
Étapes suivantes
Pour plus d’informations sur Event Hubs pour Kafka, consultez les articles suivants :