Apache Kafka için Azure Event Hubs ile Apache Flink'i kullanma
Bu öğretici, protokol istemcilerinizi değiştirmeden veya kendi kümelerinizi çalıştırmadan Apache Flink'i bir olay hub'ına nasıl bağlayabileceğinizi gösterir. Event Hubs'ın Apache Kafka tüketici protokolü desteği hakkında daha fazla bilgi için bkz . Apache Kafka için Event Hubs.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Event Hubs ad alanı oluşturma
- Örnek projeyi kopyalama
- Flink üreticisini çalıştırma
- Flink tüketicisi çalıştırma
Not
Bu örnek GitHub'da sağlanır
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
- Apache Kafka için Event Hubs makalesini okuyun.
- Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
-
Java Development Kit (JDK) 1.7+
- Ubuntu’da JDK’yi yüklemek için
apt-get install default-jdk
komutunu çalıştırın. - JAVA_HOME ortam değişkenini JDK’nin yüklü olduğu klasöre işaret edecek şekilde ayarladığınızdan emin olun.
- Ubuntu’da JDK’yi yüklemek için
-
Maven ikili arşivi indirme ve yükleme
- Ubuntu’da Maven’i yüklemek için
apt-get install maven
komutunu çalıştırabilirsiniz.
- Ubuntu’da Maven’i yüklemek için
-
Git
- Ubuntu’da Git’i yüklemek için
sudo apt-get install git
komutunu çalıştırabilirsiniz.
- Ubuntu’da Git’i yüklemek için
Event Hubs ad alanı oluşturma
Herhangi bir Event Hubs hizmetinden göndermek veya almak için bir Event Hubs ad alanı gereklidir. Ad alanı ve olay hub'ı oluşturma yönergeleri için bkz. Olay hub'ı oluşturma. Event Hubs bağlantı dizesi daha sonra kullanmak üzere kopyaladığınızdan emin olun.
Örnek projeyi kopyalama
Event Hubs bağlantı dizesi sahip olduğunuz için Kafka için Azure Event Hubs deposunu kopyalayın ve alt klasöre flink
gidin:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/flink
Flink üreticisini çalıştırma
Sağlanan Flink üretici örneğini kullanarak Event Hubs hizmetine ileti gönderin.
Event Hubs Kafka uç noktası sağlama
producer.config
üreticiyi bootstrap.servers
doğru kimlik doğrulamasıyla Event Hubs Kafka uç noktasına yönlendirmek için ve sasl.jaas.config
değerlerini producer/src/main/resources/producer.config
güncelleştirin.
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}";
Önemli
değerini Event Hubs ad alanınızın bağlantı dizesi ile değiştirin{YOUR.EVENTHUBS.CONNECTION.STRING}
. bağlantı dizesi alma yönergeleri için bkz. Event Hubs bağlantı dizesi alma. Aşağıda örnek bir yapılandırma verilmişti: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Komut satırından üreticiyi çalıştırma
Üreticiyi komut satırından çalıştırmak için JAR'yi oluşturun ve ardından Maven'ın içinden komutunu çalıştırın (veya Maven kullanarak JAR'yi oluşturun, ardından classpath'e gerekli Kafka JAR'larını ekleyerek Java'da çalıştırın):
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestProducer"
Yapımcı artık konu başlığındaki test
olay hub'ına olay göndermeye ve olayları stdout'a yazdırmaya başlayacaktır.
Flink tüketicisi çalıştırma
Sağlanan tüketici örneğini kullanarak olay hub'ından ileti alın.
Event Hubs Kafka uç noktası sağlama
consumer.config
tüketiciyi bootstrap.servers
doğru kimlik doğrulamasıyla Event Hubs Kafka uç noktasına yönlendirmek için ve sasl.jaas.config
değerlerini consumer/src/main/resources/consumer.config
güncelleştirin.
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}";
Önemli
değerini Event Hubs ad alanınızın bağlantı dizesi ile değiştirin{YOUR.EVENTHUBS.CONNECTION.STRING}
. bağlantı dizesi alma yönergeleri için bkz. Event Hubs bağlantı dizesi alma. Aşağıda örnek bir yapılandırma verilmişti: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Tüketiciyi komut satırından çalıştırma
Tüketiciyi komut satırından çalıştırmak için JAR'yi oluşturun ve ardından Maven'ın içinden komutunu çalıştırın (veya Maven kullanarak JAR'yi oluşturun, ardından classpath'e gerekli Kafka JAR'larını ekleyerek Java'da çalıştırın):
mvn clean package
mvn exec:java -Dexec.mainClass="FlinkTestConsumer"
Olay hub'ına olaylar varsa (örneğin, üreticiniz de çalışıyorsa), tüketici artık konu başlığından test
olayları almaya başlar.
Flink'i Kafka'ya bağlama hakkında daha ayrıntılı bilgi için Flink'in Kafka Bağlayıcı Kılavuzu'na göz atın.
Sonraki adımlar
Kafka için Event Hubs hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: