Aracılığıyla paylaş


Apache Kafka için Azure Event Hubs ile Apache Flink'i kullanma

Bu öğreticide, protokol istemcilerinizi değiştirmeden veya kendi kümelerinizi çalıştırmadan Apache Flink'i bir olay hub'ına nasıl bağlayacağınız gösterilir. 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 şunların nasıl yapıldığı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 kullanılabilir

Ö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.
  • Maven ikili arşivi indirme ve yükleme
    • Ubuntu’da Maven’i yüklemek için apt-get install maven komutunu çalıştırabilirsiniz.
  • Git
    • Ubuntu’da Git’i yüklemek için sudo apt-get install git komutunu çalıştırabilirsiniz.

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ı dizesini daha sonra kullanmak üzere kopyaladığınızdan emin olun.

Örnek projeyi kopyalama

Artık Event Hubs bağlantı dizesini edindiğinize göre Kafka deposu için Azure Event Hubs 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

Sağlanan Flink üreticisi ö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ı dizesiyle değiştirin {YOUR.EVENTHUBS.CONNECTION.STRING} . Bağlantı dizesini alma yönergeleri için bkz . Event Hubs bağlantı dizesi alma. Aşağıda örnek bir yapılandırma verilmiştir: 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 üretici çalıştırma

Üreticiyi komut satırından çalıştırmak için JAR'ı oluşturun ve ardından Maven'ın içinden çalıştırın (veya Maven kullanarak JAR'ı 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.

Sağlanan tüketici örneğini kullanarak olay hub'ından iletiler 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ı dizesiyle değiştirin {YOUR.EVENTHUBS.CONNECTION.STRING} . Bağlantı dizesini alma yönergeleri için bkz . Event Hubs bağlantı dizesi alma. Aşağıda örnek bir yapılandırma verilmiştir: 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'ı oluşturun ve ardından Maven'ın içinden ç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'inde olaylar varsa (örneğin, üreticiniz de çalışıyorsa), tüketici artık konu başlığından testolayları 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: