Menggunakan Apache Flink dengan Azure Event Hubs untuk Apache Kafka
Tuturial berikut menunjukkan cara menyambungkan Apache Flink ke event hub tanpa mengubah klien protokol atau menjalankan kluster Anda sendiri. Untuk informasi selengkapnya tentang dukungan Event Hubs untuk protokol konsumen Apache Kafka, lihat Event Hubs for Apache Kafka.
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat namespace layanan Pusat Aktivitas
- Mengkloning proyek contoh
- Jalankan produser Flink
- Jalankan konsumen Flink
Catatan
Sampel ini tersedia di GitHub
Prasyarat
Untuk menyelesaikan tutorial ini, pastikan prasyarat berikut dipenuhi:
- Baca artikel Azure Event Hubs untuk Apache Kafka.
- Langganan Azure. Jika Anda tidak memilikinya,buat akun gratis sebelum Anda mulai.
-
Java Development Kit (JDK) 1.7+
- Di Ubuntu, jalankan
apt-get install default-jdk
untuk menginstal JDK. - Pastikan untuk mengatur variabel lingkungan JAVA_HOME untuk mengarahkan ke folder tempat JDK dipasang.
- Di Ubuntu, jalankan
-
Mengunduh dan menginstal arsip biner Maven
- Di Ubuntu, Anda dapat menjalankan
apt-get install maven
untuk memasang Maven.
- Di Ubuntu, Anda dapat menjalankan
-
Git
- Di Ubuntu, Anda dapat menjalankan
sudo apt-get install git
untuk memasang Git.
- Di Ubuntu, Anda dapat menjalankan
Membuat namespace layanan Pusat Aktivitas
Namespace layanan Azure Event Hubs diperlukan untuk mengirim dan menerima dari layanan Azure Event Hubs apa pun. Lihat Membuat pusat aktivitas untuk petunjuk membuat namespace layanan dan pusat aktivitas. Pastikan untuk menyalin string sambungan Azure Event Hubs untuk digunakan nanti.
Mengkloning proyek contoh
Sekarang setelah Anda memiliki string sambungan Azure Event Hubs, kloning Azure Event Hubs untuk repositori Kafka dan navigasi ke flink
subfolder:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/flink
Jalankan produser Flink
Menggunakan contoh produser Flink yang disediakan, kirim pesan ke layanan Event Hubs.
Menyediakan titik akhir Azure Event Hubs Kafka
producer.config
Perbarui nilai bootstrap.servers
dan sasl.jaas.config
di producer/src/main/resources/producer.config
untuk mengarahkan produser ke titik akhir Azure Event Hubs Kafka dengan autentikasi yang benar.
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}";
Penting
Ganti {YOUR.EVENTHUBS.CONNECTION.STRING}
dengan string koneksi ke ruang nama Azure Event Hubs. Untuk instruksi tentang mendapatkan string sambungan, lihat Mendapatkan string sambungan Azure Event Hubs. Berikut adalah contoh konfigurasi: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Menjalankan produser dari baris perintah
Untuk menjalankan produser dari baris perintah, hasilkan JAR lalu jalankan dari dalam Maven (atau hasilkan JAR menggunakan Maven, lalu jalankan di Java dengan menambahkan JAR Kafka yang diperlukan ke classpath):
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestProducer"
Produser sekarang akan mulai mengirim acara ke pusat acara pada topik test
dan mencetak acara ke stdout.
Jalankan konsumen Flink
Menggunakan contoh konsumen yang disediakan, terima pesan dari event hub.
Menyediakan titik akhir Azure Event Hubs Kafka
consumer.config
Perbarui nilai bootstrap.servers
dan sasl.jaas.config
dalam consumer/src/main/resources/consumer.config
untuk mengarahkan produser ke titik akhir Event Hubs Kafka dengan autentikasi yang benar.
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}";
Penting
Ganti {YOUR.EVENTHUBS.CONNECTION.STRING}
dengan string koneksi ke ruang nama Azure Event Hubs. Untuk instruksi tentang mendapatkan string sambungan, lihat Mendapatkan string sambungan Azure Event Hubs. Berikut adalah contoh konfigurasi: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Jalankan konsumen dari baris perintah
Untuk menjalankan konsumen dari baris perintah, hasilkan JAR dan kemudian jalankan dari dalam Maven (atau hasilkan JAR menggunakan Maven, lalu jalankan di Java dengan menambahkan Jar Kafka yang diperlukan ke classpath):
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestConsumer"
Jika pusat acara memiliki acara (misalnya, jika produsen Anda juga berjalan), maka konsumen sekarang mulai menerima acara dari topik test
tersebut.
Lihat Panduan Konektor Kafka Flink untuk informasi lebih rinci tentang menghubungkan Flink ke Kafka.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Azure Event Hubs untuk Kafka, lihat artikel berikut ini: