Was ist Apache Kafka in Azure HDInsight?What is Apache Kafka in Azure HDInsight

Apache Kafka ist eine verteilte Open Source-Streamingplattform, die zum Erstellen von Datenpipelines und Anwendungen mit Echtzeitstreaming verwendet werden kann.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. Kafka verfügt auch über Nachrichtenbrokerfunktionen, die einer Nachrichtenwarteschlange ähneln, über die Sie benannte Datenströme veröffentlichen und diese abonnieren können.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

Dies sind spezifische Merkmale von Kafka in HDInsight:The following are specific characteristics of Kafka on HDInsight:

  • Es ist ein verwalteter Dienst, der einen vereinfachten Konfigurationsprozess bereitstellt.It is a managed service that provides a simplified configuration process. Das Ergebnis ist eine von Microsoft getestete und unterstützte Konfiguration.The result is a configuration that is tested and supported by Microsoft.

  • Microsoft bietet eine 99,9%ige Vereinbarung zum Servicelevel (Service Level Agreement, SLA) für die Kafka-Betriebszeit.Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. Weitere Informationen finden Sie im Dokument SLA für HDInsight.For more information, see the SLA information for HDInsight document.

  • Azure Managed Disks werden als Sicherungsspeicher für Kafka verwendet.It uses Azure Managed Disks as the backing store for Kafka. Managed Disks können bis zu 16 TB Speicher pro Kafka-Broker bieten.Managed Disks can provide up to 16 TB of storage per Kafka broker. Informationen zum Konfigurieren von verwalteten Datenträgern mit Kafka in HDInsight finden Sie unter Konfigurieren von Speicher und Skalierbarkeit für Apache Kafka in HDInsight.For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    Weitere Informationen zu verwalteten Datenträgern finden Sie unter Azure Managed Disks.For more information on managed disks, see Azure Managed Disks.

  • Kafka wurde mit einer einzelnen dimensionalen Ansicht eines Racks entworfen.Kafka was designed with a single dimensional view of a rack. Azure trennt ein Rack in zwei Dimensionen – Updatedomänen (UD) und Fehlerdomänen (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). Microsoft stellt Tools bereit, die Kafka-Partitionen und -Replikate UDs und FDs übergreifend ausgleichen.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    Weitere Informationen finden Sie unter Hochverfügbarkeit Ihrer Daten mit Apache Kafka in HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • Mit HDInsight können Sie die Anzahl von Workerknoten (zum Hosten des Kafka-Brokers) nach der Clustererstellung ändern.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. Die Skalierung kann über das Azure-Portal, Azure PowerShell und andere Azure-Verwaltungsoberflächen durchgeführt werden.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. Für Kafka sollten Sie für Partitionsreplikate nach Skalierungsvorgängen einen Ausgleichsvorgang durchführen.For Kafka, you should rebalance partition replicas after scaling operations. Durch das Ausgleichen von Partitionen kann für Kafka die neue Anzahl von Workerknoten genutzt werden.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    Weitere Informationen finden Sie unter Hochverfügbarkeit Ihrer Daten mit Apache Kafka in HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • Zur Überwachung von Kafka in HDInsight können Azure Monitor-Protokolle verwendet werden.Azure Monitor logs can be used to monitor Kafka on HDInsight. Azure Monitor-Protokolle enthalten Informationen auf VM-Ebene. Hierzu zählen beispielsweise Datenträger- und NIC-Metriken sowie JMX-Metriken aus Kafka.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    Weitere Informationen finden Sie unter Analysieren von Protokollen für Apache Kafka in HDInsight.For more information, see Analyze logs for Apache Kafka on HDInsight.

Architektur von Apache Kafka in HDInsightApache Kafka on HDInsight architecture

Das folgende Diagramm zeigt eine typische Kafka-Konfiguration, für die Consumergruppen, Partitionierung und Replikation verwendet werden, um eine parallele Ablesung von Ereignissen mit Fehlertoleranz zu ermöglichen:The following diagram shows a typical Kafka configuration that uses consumer groups, partitioning, and replication to offer parallel reading of events with fault tolerance:

Diagramm zur Kafka-Clusterkonfiguration

Apache ZooKeeper verwaltet den Zustand des Kafka-Clusters.Apache ZooKeeper manages the state of the Kafka cluster. ZooKeeper ist für gleichzeitige, robuste Transaktionen mit geringer Latenz konzipiert.Zookeeper is built for concurrent, resilient, and low-latency transactions.

Kafka speichert Datensätze (Daten) in Themen.Kafka stores records (data) in topics. Datensätze werden von Producern erstellt und von Consumern genutzt.Records are produced by producers, and consumed by consumers. Producer senden Datensätze an Kafka-Broker.Producers send records to Kafka brokers. Jeder Workerknoten in Ihrem HDInsight-Cluster ist ein Kafka-Broker.Each worker node in your HDInsight cluster is a Kafka broker.

Themen partitionieren Datensätze Broker übergreifend.Topics partition records across brokers. Bei der Nutzung von Datensätzen können Sie bis zu einen Consumer pro Partition einsetzen, um parallele Verarbeitung der Daten zu erzielen.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

Die Replikation wird genutzt, um die Partitionen auf Knoten zu duplizieren und für den Schutz vor Ausfällen von Knoten (Brokern) zu sorgen.Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. Eine Partition, die im Diagramm mit einem (L) gekennzeichnet ist, ist jeweils die führende Partition.A partition denoted with an (L) in the diagram is the leader for the given partition. Producer-Datenverkehr wird an die führende Komponente jedes Knotens weitergeleitet, indem der von ZooKeeper verwaltete Zustand verwendet wird.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

Gründe für Apache Kafka in HDInsightWhy use Apache Kafka on HDInsight?

Im Folgenden sind allgemeine Aufgaben und Muster aufgelistet, die mithilfe von Kafka in HDInsight ausgeführt werden können:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

  • Replikation von Apache Kafka-Daten: Kafka verfügt über das MirrorMaker-Hilfsprogramm, mit dem Daten zwischen Kafka-Clustern repliziert werden.Replication of Apache Kafka data: Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters.

    Informationen zur Verwendung von MirrorMaker finden Sie unter Verwenden von MirrorMaker zum Replizieren von Apache Kafka-Themen mit Kafka in HDInsight.For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.

  • Veröffentlichen-Abonnieren-Messagingmuster: Kafka umfasst eine Producer-API zum Veröffentlichen von Datensätzen in einem Kafka-Thema.Publish-subscribe messaging pattern: Kafka provides a Producer API for publishing records to a Kafka topic. Die Consumer-API wird verwendet, wenn Sie ein Thema abonnieren.The Consumer API is used when subscribing to a topic.

    Weitere Informationen finden Sie unter Schnellstart: Erstellen eines Apache Kafka-Clusters in HDInsight.For more information, see Start with Apache Kafka on HDInsight.

  • Streamverarbeitung: Kafka wird häufig zusammen mit Apache Storm oder Spark für die Echtzeit-Streamverarbeitung eingesetzt.Stream processing: Kafka is often used with Apache Storm or Spark for real-time stream processing. Mit Kafka 0.10.0.0 (HDInsight-Version 3.5 und 3.6) wurde eine Streaming-API eingeführt, mit der Sie Streaminglösungen erstellen können, ohne dass Sie dafür Storm oder Spark benötigen.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.

    Weitere Informationen finden Sie unter Schnellstart: Erstellen eines Apache Kafka-Clusters in HDInsight.For more information, see Start with Apache Kafka on HDInsight.

  • Horizontale Skalierung: Bei Kafka werden Streams über die Knoten im HDInsight-Cluster hinweg partitioniert.Horizontal scale: Kafka partitions streams across the nodes in the HDInsight cluster. Consumerprozesse können einzelnen Partitionen zugeordnet werden, um beim Nutzen von Datensätzen für einen Lastenausgleich zu sorgen.Consumer processes can be associated with individual partitions to provide load balancing when consuming records.

    Weitere Informationen finden Sie unter Schnellstart: Erstellen eines Apache Kafka-Clusters in HDInsight.For more information, see Start with Apache Kafka on HDInsight.

  • Geordnete Bereitstellung: In jeder Partition werden die Datensätze im Stream in der Reihenfolge gespeichert, in der sie empfangen wurden.In-order delivery: Within each partition, records are stored in the stream in the order that they were received. Indem ein Consumerprozess pro Partition zugeordnet wird, können Sie sicherstellen, dass die Datensätze in der richtigen Reihenfolge verarbeitet werden.By associating one consumer process per partition, you can guarantee that records are processed in-order.

    Weitere Informationen finden Sie unter Schnellstart: Erstellen eines Apache Kafka-Clusters in HDInsight.For more information, see Start with Apache Kafka on HDInsight.

AnwendungsfälleUse cases

  • Messaging: Da das Veröffentlichen-Abonnieren-Messagingmuster unterstützt wird, wird Kafka häufig als Nachrichtenbroker genutzt.Messaging: Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.

  • Aktivitätsüberwachung: Da Kafka die geordnete Protokollierung von Datensätzen unterstützt, kann die Anwendung zum Nachverfolgen und Neuerstellen von Aktivitäten verwendet werden.Activity tracking: Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Beispiele hierfür sind Benutzeraktionen auf einer Website oder in einer Anwendung.For example, user actions on a web site or within an application.

  • Aggregation: Mit der Datenstromverarbeitung können Sie Informationen aus unterschiedlichen Datenströmen aggregieren, um die Informationen zu operativen Daten zu kombinieren und zu zentralisieren.Aggregation: Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.

  • Transformation: Mit der Datenstromverarbeitung können Sie Daten aus mehreren Eingabethemen zu einem oder mehreren Ausgabethemen kombinieren und erweitern.Transformation: Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Nächste SchritteNext steps

Verwenden Sie die folgenden Links, um Informationen zur Verwendung von Apache Kafka unter HDInsight zu erhalten:Use the following links to learn how to use Apache Kafka on HDInsight: