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ğlayabileceğiniz gösterilmektedir. Apache Kafka tüketicisi protokolü için Event Hubs desteği hakkında daha fazla bilgi için bkz. Event Hubs Apache Kafka.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Event Hubs ad alanı oluşturma
  • Örnek projeyi kopyalama
  • Flink üreticisi Çalıştır
  • Flink tüketicisi Çalıştır

Not

Bu örnek GitHub kullanılabilir

Önkoşullar

Bu öğreticiyi tamamlayabilmeniz 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ı gerekir. Ad alanı ve Olay Hub 'ı oluşturma yönergeleri için bkz. bir Olay Hub 'ı oluşturma . Event Hubs bağlantı dizesini daha sonra kullanmak üzere kopyalamadığınızdan emin olun.

Örnek projeyi kopyalama

Artık Event Hubs bağlantı dizesine sahip olduğunuza göre, Azure Event Hubs for Kafka Repository 'yi klonlayın ve flink alt klasöre gidin:

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

Belirtilen flink üreticisi örneğini kullanarak, Event Hubs hizmetine ileti gönderin.

Event Hubs Kafka uç noktası sağlama

producer.config

bootstrap.servers sasl.jaas.config Üretici ve değerlerini, producer/src/main/resources/producer.config doğru kimlik doğrulamasıyla, üreticiyi Event Hubs Kafka uç noktasına yönlendirmek için 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

{YOUR.EVENTHUBS.CONNECTION.STRING}Event Hubs ad alanınız için bağlantı dizesiyle değiştirin. Bağlantı dizesini alma hakkında yönergeler için bkz. Event Hubs bağlantı dizesi alma. Örnek bir yapılandırma aşağıda 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";

Üretici 'yi komut satırından Çalıştır

Producer 'ı komut satırından çalıştırmak için, JAR 'yi oluşturun ve Maven içinden çalıştırın (veya Maven kullanarak JAR 'yi oluşturun ve ardından, gerekli Kafka JAR 'leri, Sınıfyoluna ekleyerek Java 'da çalıştırın):

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

Artık üretici, konu başlığı altında Olay Hub 'ına olay göndermeye test ve olayları stdout 'a yazdırmaya başlayacak.

Belirtilen tüketici örneğini kullanarak Olay Hub 'ından ileti alın.

Event Hubs Kafka uç noktası sağlama

consumer.config

bootstrap.servers' İ ve sasl.jaas.config değerlerini, consumer/src/main/resources/consumer.config doğru kimlik doğrulamasıyla tüketicisini Event Hubs Kafka uç noktasına yönlendirmek için 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

{YOUR.EVENTHUBS.CONNECTION.STRING}Event Hubs ad alanınız için bağlantı dizesiyle değiştirin. Bağlantı dizesini alma hakkında yönergeler için bkz. Event Hubs bağlantı dizesi alma. Örnek bir yapılandırma aşağıda 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 tüketici çalıştırma

Tüketici 'yi komut satırından çalıştırmak için, JAR 'yi oluşturun ve Maven içinden çalıştırın (veya Maven kullanarak JAR 'yi oluşturun ve ardından, gerekli Kafka JAR 'leri, Sınıfyoluna ekleyerek Java 'da çalıştırın):

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

Olay Hub 'ının olayları varsa (örneğin, üreticisi de çalışıyorsa), tüketici artık konudan olay almaya başlar test .

Flink 'in Kafka 'e bağlanması hakkında daha ayrıntılı bilgi için flink 'In Kafka bağlayıcı kılavuzuna göz atın.

Sonraki adımlar

Kafka için Event Hubs hakkında daha fazla bilgi için aşağıdaki makalelere bakın: