Azure HDInsight'ta Apache Kafka nedir?

Apache Kafka, gerçek zamanlı akış verisi işlem hatları ve uygulamaları oluşturmak için kullanılabilen, açık kaynak dağıtılmış akış platformudur. Kafka ayrıca, adlandırılmış veri akışları yayımlayıp abone olabileceğiniz bir ileti kuyruğuna benzer aracı işlevselliği sağlar.

Aşağıda, HDInsight üzerinde Kafka’ya özgü özellikler verilmiştir:

  • Basitleştirilmiş bir yapılandırma işlemi sağlayan yönetilen bir hizmettir. Sonuçta, Microsoft tarafından test edilen ve desteklenen bir yapılandırma elde edilir.

  • Microsoft, Kafka çalışma süresinde %99,9 Hizmet Düzeyi Sözleşmesi (SLA) sağlar. Daha fazla bilgi için HDInsight için SLA bilgileri belgesine bakın.

  • Kafka için yedekleme deposu olarak Azure Yönetilen Diskler’i kullanır. Yönetilen Diskler, her Kafka aracısı için 16 TB’a kadar depolama alanı sağlayabilir. YÖNETILEN diskleri HDInsight üzerinde Kafka ile yapılandırma hakkında bilgi için bkz . HDInsight üzerinde Apache Kafka'nın ölçeklenebilirliğini artırma.

    Yönetilen diskler hakkında daha fazla bilgi için bkz. Azure Yönetilen Diskler.

  • Kafka, bir rafın tek bir boyutlu görünümüyle tasarlanmıştır. Azure, bir rafı iki boyuta ayırır: Güncelleştirme Etki Alanları (UD) ve Hata Etki Alanları (FD). Microsoft, UD ve FD’ler genelinde Kafka bölümleri ve çoğaltmalarını yeniden dengeleyen araçlar sağlar.

    Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile yüksek kullanılabilirlik.

  • HDInsight, küme oluşturulduktan sonra çalışan düğümlerinin sayısını (Kafka aracısını barındıran) değiştirmenize olanak sağlar. Yukarı doğru ölçeklendirme Azure portalından, Azure PowerShell'den ve diğer Azure yönetim arabirimlerinden gerçekleştirilebilir. Kafka için, bölüm çoğaltmalarını ölçeklendirme işlemlerinden sonra yeniden dengelemeniz gerekir. Bölümleri yeniden dengelemek, Kafka’nın yeni çalışan düğüm sayısından yararlanabilmesini sağlar.

    HDInsight Kafka, bir küme içindeki aracıların sayısını azaltmayı veya aşağı doğru ölçeklendirmeyi desteklemez. Düğüm sayısını azaltmaya çalışılırsa bir InvalidKafkaScaleDownRequestErrorCode hata döndürülür.

    Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile yüksek kullanılabilirlik.

  • Azure İzleyici günlükleri, HDInsight üzerinde Kafka'nın izlenmesi için kullanılabilir. Azure İzleyici günlükleri, disk ve NIC ölçümleri gibi sanal makine düzeyindeki bilgileri ve Kafka'daki JMX ölçümlerini ortaya çıkarmaktadır.

    Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka günlüklerini analiz etme.

HDInsight üzerinde Apache Kafka mimarisi

Aşağıdaki diyagram, olayların hata dayanıklılığı ile paralel olarak okunması için tüketici gruplarını, bölümlemeyi ve çoğaltmayı kullanan tipik Kafka yapılandırmasını göstermektedir:

Kafka cluster configuration diagram.

Apache ZooKeeper, Kafka kümesinin durumunu yönetir. Zookeeper, eşzamanlı, esnek ve düşük gecikme süreli işlemler için derlenmiştir.

Kafka, kayıtları (verileri) konular içinde depolar. Kayıtlar, Üreticiler tarafından oluşturulur ve tüketiciler tarafından kullanılır. Üreticiler, Kafka aracılarına kayıtlar gönderir. HDInsight kümenizdeki her çalışan düğümü bir Kafka aracısıdır.

Aracılar arasında konuların bölüm kayıtları. Kayıtları tüketirken, verilerin paralel işlemesini elde etmek için bölüm başına en fazla bir tüketici kullanabilirsiniz.

Çoğaltma, düğümler arasında bölmeleri çoğaltmak ve düğüm (aracı) kesintilerine karşı koruma sağlamak için kullanılır. Diyagramda (L) harfi bulunan bölüm, verilen bölümün lideridir. Üretici trafiği ZooKeeper tarafından yönetilen durum kullanılarak her düğümün liderine yönlendirilir.

HDInsight'ta Apache Kafka neden kullanılır?

Aşağıda, HDInsight üzerinde Kafka kullanılarak gerçekleştirilebilen yaygın görevler ve desenler verilmiştir:

Kullanma Açıklama
Apache Kafka verilerini çoğaltma Kafka, Verileri Kafka kümeleri arasında çoğaltan MirrorMaker yardımcı programını sağlar. MirrorMaker kullanma hakkında bilgi için bkz . HDInsight üzerinde Apache Kafka ile Apache Kafka konularını çoğaltma.
Yayımla-abone ol mesajlaşma düzeni Kafka, kayıtları kafka konusuna yayımlamak için bir Üretici API'si sağlar. Bir konu başlığına abone olurken Consumer API (Tüketici API’si) kullanılır. Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile başlama.
Akış işleme Kafka genellikle gerçek zamanlı akış işleme için Spark ile birlikte kullanılır. Kafka 2.1.1 ve 2.4.1 (HDInsight sürüm 4.0 ve 5.0) Spark gerektirmeden akış çözümleri oluşturmanıza olanak tanıyan akış API'lerini destekler. Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile başlama.
Yatay ölçeklendirme Kafka, HDInsight kümesindeki düğümler arasında akışları bölümler. Kayıtlar kullanılırken yük dengeleme sağlamak üzere tüketici işlemleri, tek bölümlerle ilişkilendirilebilir. Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile başlama.
Sipariş içi teslimat Her bölüm içinde kayıtlar akışta alındıkları sırayla depolanır. Bölüm başına bir tüketici işlemi ile ilişkilendirerek, kayıtların sırayla işlenmesini garanti edebilirsiniz. Daha fazla bilgi için bkz . HDInsight üzerinde Apache Kafka ile başlama.
Mesajlaşma Yayımla-abone ol ileti desenini desteklediğinden Kafka genellikle ileti aracısı olarak kullanılır.
Etkinlik izleme Kafka kayıtların sırayla günlüğe kaydedilmesini sağladığından, etkinlikleri izlemek ve yeniden oluşturmak için kullanılabilir. Örneğin, bir web sitesindeki veya uygulamadaki kullanıcı işlemleri.
Toplama Akış işlemeyi kullanarak, farklı akışlardan bilgileri bir araya getirerek işlem verilerine göre merkezileştirebilirsiniz.
Dönüşüm Akış işlemeyi kullanarak, birden çok giriş konu başlığındaki verileri bir veya daha fazla çıkış konu başlığında birleştirebilir ve zenginleştirebilirsiniz.

Sonraki adımlar

HDInsight’ta Apache Kafka kullanma hakkında bilgi almak için aşağıdaki bağlantıları kullanın: