Azure HDInsight 'ta Apache Kafka nedir?What is Apache Kafka in Azure HDInsight

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.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. 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.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

Aşağıda, HDInsight üzerinde Kafka’ya özgü özellikler verilmiştir:The following are specific characteristics of Kafka on HDInsight:

  • Bu, basitleştirilmiş bir yapılandırma işlemi sağlayan yönetilen bir hizmettir.It is a managed service that provides a simplified configuration process. Sonuçta, Microsoft tarafından test edilen ve desteklenen bir yapılandırma elde edilir.The result is a configuration that is tested and supported by Microsoft.

  • Microsoft, Kafka çalışma süresinde %99,9 Hizmet Düzeyi Sözleşmesi (SLA) sağlar.Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. Daha fazla bilgi için HDInsight için SLA bilgileri belgesine bakın.For more information, see the SLA information for HDInsight document.

  • Kafka için yedekleme deposu olarak Azure Yönetilen Diskler’i kullanır.It uses Azure Managed Disks as the backing store for Kafka. Yönetilen Diskler, her Kafka aracısı için 16 TB’a kadar depolama alanı sağlayabilir.Managed Disks can provide up to 16 TB of storage per Kafka broker. HDInsight üzerinde Kafka ile yönetilen diskleri yapılandırma hakkında daha fazla bilgi için bkz. HDInsight 'ta Apache Kafka ölçeklenebilirliğini artırma.For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    Yönetilen diskler hakkında daha fazla bilgi için bkz. Azure Yönetilen Diskler.For more information on managed disks, see Azure Managed Disks.

  • Kafka, bir rafın tek bir boyutlu görünümüyle tasarlanmıştır.Kafka was designed with a single dimensional view of a rack. Azure, bir rafı iki boyuta ayırır: Güncelleştirme Etki Alanları (UD) ve Hata Etki Alanları (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). Microsoft, UD ve FD’ler genelinde Kafka bölümleri ve çoğaltmalarını yeniden dengeleyen araçlar sağlar.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka yüksek kullanılabilirlik.For more information, see High availability with Apache Kafka on HDInsight.

  • 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.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. Ölçeklendirme Azure portalı, Azure PowerShell ve diğer Azure yönetim arabirimleri üzerinde gerçekleştirilebilir.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. Kafka için, bölüm çoğaltmalarını ölçeklendirme işlemlerinden sonra yeniden dengelemeniz gerekir.For Kafka, you should rebalance partition replicas after scaling operations. Bölümleri yeniden dengelemek, Kafka’nın yeni çalışan düğüm sayısından yararlanabilmesini sağlar.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka yüksek kullanılabilirlik.For more information, see High availability with Apache Kafka on HDInsight.

  • Azure Izleyici günlükleri, HDInsight üzerinde Kafka izlemek için kullanılabilir.Azure Monitor logs can be used to monitor Kafka on HDInsight. Azure Izleyici, disk ve NIC ölçümleri gibi sanal makine düzeyindeki bilgileri ve Kafka 'ten JMX ölçümlerini kaydeder.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    Daha fazla bilgi için bkz. HDInsight 'ta Apache Kafka için günlükleri çözümleme.For more information, see Analyze logs for Apache Kafka on HDInsight.

HDInsight mimarisi üzerinde Apache KafkaApache Kafka on HDInsight architecture

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:The following diagram shows a typical Kafka configuration that uses consumer groups, partitioning, and replication to offer parallel reading of events with fault tolerance:

Kafka kümesi yapılandırması diyagramı

Apache ZooKeeper, Kafka kümesinin durumunu yönetir.Apache ZooKeeper manages the state of the Kafka cluster. Zookeeper, eşzamanlı, esnek ve düşük gecikme süreli işlemler için derlenmiştir.Zookeeper is built for concurrent, resilient, and low-latency transactions.

Kafka, kayıtları (verileri) konular içinde depolar.Kafka stores records (data) in topics. Kayıtlar, Üreticiler tarafından oluşturulur ve tüketiciler tarafından kullanılır.Records are produced by producers, and consumed by consumers. Üreticiler, Kafka aracılarına kayıtlar gönderir.Producers send records to Kafka brokers. HDInsight kümenizdeki her çalışan düğümü bir Kafka aracısıdır.Each worker node in your HDInsight cluster is a Kafka broker.

Aracılar arasında konuların bölüm kayıtları.Topics partition records across brokers. Kayıtları tüketirken, verilerin paralel işlemesini elde etmek için bölüm başına en fazla bir tüketici kullanabilirsiniz.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

Çoğaltma, düğümler arasında bölmeleri çoğaltmak ve düğüm (aracı) kesintilerine karşı koruma sağlamak için kullanılır.Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. Diyagramda (L) harfi bulunan bölüm, verilen bölümün lideridir.A partition denoted with an (L) in the diagram is the leader for the given partition. Üretici trafiği ZooKeeper tarafından yönetilen durum kullanılarak her düğümün liderine yönlendirilir.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

HDInsight üzerinde neden Apache Kafka kullanmalıyım?Why use Apache Kafka on HDInsight?

Aşağıda, HDInsight üzerinde Kafka kullanılarak gerçekleştirilebilen yaygın görevler ve desenler verilmiştir:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

  • Apache Kafka verilerinin çoğaltılması: Kafka, Kafka kümeleri arasında veri çoğaltan MirrorMaker yardımcı programını sağlar.Replication of Apache Kafka data: Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters.

    MirrorMaker kullanma hakkında daha fazla bilgi için bkz. HDInsight 'ta Apache Kafka Apache Kafka konularına çoğaltma.For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.

  • Yayımlama-abone olma mesajlaşma stili: Kafka, bir Kafka konusuna kayıt yayımlamak için bir üretici API 'SI sağlar.Publish-subscribe messaging pattern: Kafka provides a Producer API for publishing records to a Kafka topic. Bir konu başlığına abone olurken Consumer API (Tüketici API’si) kullanılır.The Consumer API is used when subscribing to a topic.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka kullanmaya başlama.For more information, see Start with Apache Kafka on HDInsight.

  • Akış işleme: Kafka, genellikle gerçek zamanlı akış işleme için Apache Storm veya Spark ile birlikte kullanılır.Stream processing: Kafka is often used with Apache Storm or Spark for real-time stream processing. Kafka 0.10.0.0 (HDInsight sürüm 3.5 ve 3.6), Storm ya da Spark gerektirmeden akış çözümleri oluşturmanızı sağlayan bir akış API’sini kullanıma sunmuştur.Kafka 0.10.0.0 (HDInsight version 3.5 and 3.6) introduced a streaming API that allows you to build streaming solutions without requiring Storm or Spark.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka kullanmaya başlama.For more information, see Start with Apache Kafka on HDInsight.

  • Yatay ölçek: Kafka bölümleri, HDInsight kümesindeki düğümler arasında akışlar.Horizontal scale: Kafka partitions streams across the nodes in the HDInsight cluster. Kayıtlar kullanılırken yük dengeleme sağlamak üzere tüketici işlemleri, tek bölümlerle ilişkilendirilebilir.Consumer processes can be associated with individual partitions to provide load balancing when consuming records.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka kullanmaya başlama.For more information, see Start with Apache Kafka on HDInsight.

  • Sıralı teslim: Her bölümde kayıtlar, alındıkları sırada akışta saklanır.In-order delivery: Within each partition, records are stored in the stream in the order that they were received. Bölüm başına bir tüketici işlemi ile ilişkilendirerek, kayıtların sırayla işlenmesini garanti edebilirsiniz.By associating one consumer process per partition, you can guarantee that records are processed in-order.

    Daha fazla bilgi için bkz. HDInsight üzerinde Apache Kafka kullanmaya başlama.For more information, see Start with Apache Kafka on HDInsight.

Uygulama alanlarıUse cases

  • Mesajlaşma: Yayımla-abone ol ileti modelini desteklediğinden, Kafka genellikle bir ileti Aracısı olarak kullanılır.Messaging: Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.

  • Etkinlik izleme: Kafka, kayıtların sıralı olarak günlüğe kaydedilmesini sağladığından etkinlikleri izlemek ve yeniden oluşturmak için kullanılabilir.Activity tracking: Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Örneğin, bir web sitesindeki veya uygulamadaki kullanıcı işlemleri.For example, user actions on a web site or within an application.

  • Toplama: Akış işlemeyi kullanarak, bilgileri bir işlem verileriyle birleştirmek ve merkezileştirmek için farklı akışlardan bilgi toplayabilirsiniz.Aggregation: Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.

  • Dönüştürme: Akış işlemeyi kullanarak, birden çok Giriş konusunun verilerini bir veya daha fazla çıktı konu başlığı içinde birleştirebilir ve zenginleştirebilirsiniz.Transformation: Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Sonraki adımlarNext steps

HDInsight’ta Apache Kafka kullanma hakkında bilgi almak için aşağıdaki bağlantıları kullanın:Use the following links to learn how to use Apache Kafka on HDInsight: