Wat is Apache Kafka in Azure HDInsightWhat is Apache Kafka in Azure HDInsight

Apache Kafka is een open-source gedistribueerd streamingplatform dat kan worden gebruikt voor het bouwen van pijplijnen en toepassingen voor realtime streaming van gegevens.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. Kafka biedt ook berichtenbrokerfunctionaliteit vergelijkbaar met een berichtenwachtrij, waarmee u benoemde gegevensstromen kunt publiceren en zich erop kunt abonneren.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

Dit zijn specifieke kenmerken van Kafka in HDInsight:The following are specific characteristics of Kafka on HDInsight:

  • Het is een beheerde service die een vereenvoudigd configuratieproces mogelijk maakt.It is a managed service that provides a simplified configuration process. Het resultaat is een configuratie die is getest en die wordt ondersteund door Microsoft.The result is a configuration that is tested and supported by Microsoft.

  • Microsoft biedt een SLA (Service Level Agreement) met een uptime van 99,9% voor Kafka.Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. Zie SLA-informatie voor HDInsight voor meer informatie.For more information, see the SLA information for HDInsight document.

  • Het gebruikt Azure Managed Disks als de externe opslag voor Kafka.It uses Azure Managed Disks as the backing store for Kafka. Managed Disks kan maximaal 16 TB opslag per Kafka-broker leveren.Managed Disks can provide up to 16 TB of storage per Kafka broker. Zie Increase scalability of Kafka on HDInsight (Schaalbaarheid verhogen van Kafka in HDInsight) voor informatie over het configureren van beheerde schijven met Apache Kafka in HDInsight.For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    Zie Azure Managed Disks voor meer informatie over beheerde schijven.For more information on managed disks, see Azure Managed Disks.

  • Kafka is ontworpen als een eendimensionale weergave van een rek.Kafka was designed with a single dimensional view of a rack. Azure splitst een rek op in twee dimensies: updatedomeinen (UD) en foutdomeinen (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). Microsoft biedt hulpprogramma's voor het herverdelen van Kafka-partities en -replica's in UD’s en FD’s.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    Zie Hoge beschikbaarheid met Apache Kafka in HDInsight voor meer informatie.For more information, see High availability with Apache Kafka on HDInsight.

  • Met HDInsight kunt u het aantal werkknooppunten (waarop de Kafka-broker wordt gehost) wijzigen na het maken van het cluster.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. Schalen kan worden uitgevoerd vanuit Azure Portal, Azure PowerShell en andere interfaces voor Azure-beheer.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. Voor Kafka moet u partitiereplica's na het schalen herverdelen.For Kafka, you should rebalance partition replicas after scaling operations. Door herverdeling van partities kan Kafka gebruikmaken van het nieuwe aantal worker-knooppunten.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    Zie Hoge beschikbaarheid met Apache Kafka in HDInsight voor meer informatie.For more information, see High availability with Apache Kafka on HDInsight.

  • Azure Monitor-logboeken kan worden gebruikt voor het bewaken van Kafka in HDInsight.Azure Monitor logs can be used to monitor Kafka on HDInsight. Azure Monitor-logboeken geeft informatie op VM-niveau weer, zoals schijf- en NIC-gegevens en JMX-gegevens van Kafka.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    Zie Logboeken voor Apache Kafka in HDInsight analyseren voor meer informatie.For more information, see Analyze logs for Apache Kafka on HDInsight.

Architectuur van Apache Kafka in HDInsightApache Kafka on HDInsight architecture

Het volgende diagram toont een typische Kafka-configuratie die gebruikmaakt van de consumentgroepen, partitionering en replicatie om het parallel lezen van gebeurtenissen met fouttolerantie mogelijk te maken:The following diagram shows a typical Kafka configuration that uses consumer groups, partitioning, and replication to offer parallel reading of events with fault tolerance:

Diagram van Kafka-clusterconfiguratie

Apache ZooKeeper beheert de status van het Kafka-cluster.Apache ZooKeeper manages the state of the Kafka cluster. Zookeeper is gebouwd voor gelijktijdige, robuuste transacties met een lage latentie.Zookeeper is built for concurrent, resilient, and low-latency transactions.

Kafka slaat records (gegevens) op in onderwerpen.Kafka stores records (data) in topics. Records worden geproduceerd door producenten en worden gebruikt door consumenten.Records are produced by producers, and consumed by consumers. Producenten versturen records naar Kafka-brokers.Producers send records to Kafka brokers. Elk werkrolknooppunt in uw HDInsight-cluster is een Kafka-broker.Each worker node in your HDInsight cluster is a Kafka broker.

Onderwerpen verdelen records over brokers.Topics partition records across brokers. Wanneer records worden verbruikt, kunt u maximaal één consumer per partitie gebruiken voor parallelle verwerking van de gegevens.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

Replicatie wordt gebruikt om partities te dupliceren over knooppunten, zodat er beveiliging is tegen storingen van knooppunten (broker).Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. Een partitie die in het diagram is gemarkeerd met een (L), is de leidende partitie voor de opgegeven partitie.A partition denoted with an (L) in the diagram is the leader for the given partition. Producentverkeer wordt doorgestuurd naar de leider van elk knooppunt, met behulp van de status die wordt beheerd door ZooKeeper.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

Waarom Apache Kafka in HDInsight gebruiken?Why use Apache Kafka on HDInsight?

Hier volgen enkele algemene taken en patronen die kunnen worden uitgevoerd met Kafka in HDInsight:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

  • Replicatie van Apache Kafka-gegevens: Kafka biedt het hulpprogramma MirrorMaker, waarmee gegevens worden gerepliceerd tussen Kafka-clusters.Replication of Apache Kafka data: Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters.

    Zie Apache Kafka-onderwerpen repliceren met Apache Kafka in HDInsight voor informatie over het gebruik van MirrorMaker.For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.

  • Publicatie-/abonnementsberichten: Kafka biedt een producent-API voor het publiceren van records naar een Kafka-onderwerp.Publish-subscribe messaging pattern: Kafka provides a Producer API for publishing records to a Kafka topic. De consument-API wordt gebruikt bij het abonneren op een onderwerp.The Consumer API is used when subscribing to a topic.

    Zie Starten met Apache Kafka in HDInsight voor meer informatie.For more information, see Start with Apache Kafka on HDInsight.

  • Streamverwerking: Kafka wordt vaak gebruikt met Apache Storm of Spark voor streamverwerking in realtime.Stream processing: Kafka is often used with Apache Storm or Spark for real-time stream processing. In Kafka 0.10.0.0 (HDInsight-versie 3.5 en 3.6) werd een streaming-API geïntroduceerd waarmee u streamingoplossingen kunt maken zonder Storm of Spark.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.

    Zie Starten met Apache Kafka in HDInsight voor meer informatie.For more information, see Start with Apache Kafka on HDInsight.

  • Horizontale schaal: Kafka partitioneert streams op de knooppunten in het HDInsight-cluster.Horizontal scale: Kafka partitions streams across the nodes in the HDInsight cluster. Consumentenprocessen kunnen worden gekoppeld aan afzonderlijke partities voor een evenwichtige taakverdeling bij het gebruiken van records.Consumer processes can be associated with individual partitions to provide load balancing when consuming records.

    Zie Starten met Apache Kafka in HDInsight voor meer informatie.For more information, see Start with Apache Kafka on HDInsight.

  • Levering op volgorde: binnen elke partitie worden records in de stream opgeslagen in de volgorde waarin ze zijn ontvangen.In-order delivery: Within each partition, records are stored in the stream in the order that they were received. Door één consumentenproces aan een partitie te koppelen, kunt u garanderen dat de records in de juiste volgorde worden verwerkt.By associating one consumer process per partition, you can guarantee that records are processed in-order.

    Zie Starten met Apache Kafka in HDInsight voor meer informatie.For more information, see Start with Apache Kafka on HDInsight.

GebruiksvoorbeeldenUse cases

  • Berichten: omdat het publicatie-/abonnementspatroon voor berichten wordt ondersteund, wordt Kafka vaak gebruikt als berichtenbroker.Messaging: Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.

  • Activiteitsregistratie: omdat Kafka records registreert in de volgorde waarin ze binnenkomen, kan dit worden gebruikt om activiteiten bij te houden en opnieuw te maken.Activity tracking: Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Bijvoorbeeld gebruikersacties op een website of in een toepassing.For example, user actions on a web site or within an application.

  • Aggregatie: met streamverwerking kunt u de gegevens uit de verschillende streams combineren en samenvoegen in operationele gegevens.Aggregation: Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.

  • Transformatie: met streamverwerking kunt u de gegevens uit meerdere invoeronderwerpen combineren en vertalen naar één of meer uitvoeronderwerpen.Transformation: Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Volgende stappenNext steps

Gebruik de volgende koppelingen voor meer informatie over het gebruik van Apache Kafka in HDInsight:Use the following links to learn how to use Apache Kafka on HDInsight: