Co to jest Apache Kafka w usłudze Azure HDInsightWhat is Apache Kafka in Azure HDInsight

Apache Kafka to rozproszona platforma przesyłania strumieniowego typu „open source”, która umożliwia tworzenie aplikacji i potoków danych przesyłania strumieniowego w czasie rzeczywistym.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. Ponadto platforma Kafka oferuje funkcję brokera komunikatów, która działa podobnie do kolejki komunikatów. Pozwala ona publikować i subskrybować w nazwanych strumieniach danych.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

Cechy charakterystyczne platformy Kafka w usłudze HDInsight są następujące:The following are specific characteristics of Kafka on HDInsight:

  • Jest to usługa zarządzana zapewniająca uproszczony proces konfiguracji.It is a managed service that provides a simplified configuration process. W wyniku powstaje konfiguracja przetestowana i obsługiwana przez firmę Microsoft.The result is a configuration that is tested and supported by Microsoft.

  • Firma Microsoft gwarantuje 99,9% czasu sprawnego działania platformy Kafka zgodnie z Umową dotyczącą poziomu usług (SLA).Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. Aby uzyskać więcej informacji, zobacz dokument HDInsight — umowa SLA.For more information, see the SLA information for HDInsight document.

  • Jako magazynu zapasowego platforma Kafka używa funkcji Dyski zarządzane platformy Azure.It uses Azure Managed Disks as the backing store for Kafka. Funkcja Dyski zarządzane zapewnia do 16 TB pamięci masowej dla każdego brokera platformy Kafka.Managed Disks can provide up to 16 TB of storage per Kafka broker. Aby uzyskać informacje dotyczące konfigurowania dysków zarządzanych na platformie Kafka w usłudze HDInsight, zobacz Increase scalability of Apache Kafka on HDInsight (Zwiększanie skalowalności platformy Apache Kafka w usłudze HDInsight).For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    Aby uzyskać więcej informacji o funkcji Dyski zarządzane, zobacz artykuł Funkcja Dyski zarządzane platformy Azure.For more information on managed disks, see Azure Managed Disks.

  • Platforma Kafka została zaprojektowana jako jednowymiarowy widok regału.Kafka was designed with a single dimensional view of a rack. Platforma Azure rozdziela ten regał na dwa wymiary — domeny aktualizacji (UD) i domeny błędów (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). Firma Microsoft udostępnia narzędzia, za pomocą których można ponownie zrównoważyć partycje i repliki platformy Kafka między domenami aktualizacji i błędów.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    Aby uzyskać więcej informacji, zobacz High availability with Apache Kafka on HDInsight (Wysoka dostępność na platformie Apache Kafka w usłudze HDInsight).For more information, see High availability with Apache Kafka on HDInsight.

  • Usługa HDInsight umożliwia zmianę liczby węzłów procesu roboczego (które hostują brokera platformy Kafka) po utworzeniu klastra.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. Skalowanie może być przeprowadzane w witrynie Azure Portal, w programie Azure PowerShell i w innych interfejsach zarządzania platformy Azure.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. W przypadku platformy Kafka po wykonaniu operacji skalowania należy przeprowadzić ponowne równoważenie replik partycji.For Kafka, you should rebalance partition replicas after scaling operations. Ponowne równoważenie partycji na platformie Kafka umożliwia skorzystanie z nowej liczby węzłów procesu roboczego.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    Aby uzyskać więcej informacji, zobacz High availability with Apache Kafka on HDInsight (Wysoka dostępność na platformie Apache Kafka w usłudze HDInsight).For more information, see High availability with Apache Kafka on HDInsight.

  • Do monitorowania platformy Kafka w usłudze HDInsight można użyć dzienników usługi Azure Monitor.Azure Monitor logs can be used to monitor Kafka on HDInsight. Dzienniki usługi Azure Monitor wydobywają informacje dotyczące maszyn wirtualnych, takie jak metryki dysków i kart sieciowych oraz metryki JMX z platformy Kafka.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    Aby uzyskać więcej informacji, zobacz Analyze logs for Apache Kafka on HDInsight (Analizowanie dzienników na potrzeby platformy Apache Kafka w usłudze HDInsight).For more information, see Analyze logs for Apache Kafka on HDInsight.

Architektura platformy Apache Kafka w usłudze HDInsightApache Kafka on HDInsight architecture

Poniższy diagram przedstawia typową konfigurację platformy Kafka korzystającą z grup konsumentów, partycjonowania i replikacji w celu zapewnienia równoległego odczytu zdarzeń przy zachowaniu odporności na uszkodzenia: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 konfiguracji klastra platformy Kafka

Usługa Apache ZooKeeper zarządza stanem klastra platformy Kafka.Apache ZooKeeper manages the state of the Kafka cluster. Usługę Zookeeper zaprojektowano pod kątem obsługi jednoczesnych, odpornych transakcji o małych opóźnieniach.Zookeeper is built for concurrent, resilient, and low-latency transactions.

Platforma Kafka przechowuje rekordy (dane) w tematach.Kafka stores records (data) in topics. Rekordy są tworzone przez producentów i używane przez odbiorców.Records are produced by producers, and consumed by consumers. Producenci wysyłają rekordy do brokerów platformy Kafka.Producers send records to Kafka brokers. Każdy węzeł procesu roboczego w klastrze usługi HDInsight jest brokerem platformy Kafka.Each worker node in your HDInsight cluster is a Kafka broker.

Tematy dzielą rekordy między brokerami.Topics partition records across brokers. Podczas korzystania z rekordów można użyć maksymalnie jednego odbiorcy na jedną partycję, aby osiągnąć równoległe przetwarzanie danych.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

Dzięki replikacji zapewniono duplikowanie partycji w węzłach, co gwarantuje ochronę przed awariami węzła (brokera).Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. Partycja wiodąca jest oznaczona symbolem (L) na diagramie.A partition denoted with an (L) in the diagram is the leader for the given partition. Ruch producenta jest kierowany do partycji wiodącej w każdym węźle przy użyciu stanu zarządzanego przez usługę ZooKeeper.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

Dlaczego warto używać platformy Apache Kafka w usłudze HDInsight?Why use Apache Kafka on HDInsight?

Poniżej przedstawiono typowe zadania i wzorce, które mogą być wykonywane przy użyciu platformy Kafka w usłudze HDInsight:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

  • Replikowanie danych platformy Apache Kafka: platforma Kafka udostępnia narzędzie MirrorMaker, które replikuje dane między klastrami Kafka.Replication of Apache Kafka data: Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters.

    Aby uzyskać informacje na temat używania narzędzia MirrorMaker, zobacz Replicate Apache Kafka topics with Apache Kafka on HDInsight (Replikowanie tematów platformy Apache Kafka na platformie Apache Kafka w usłudze HDInsight).For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.

  • Wzorzec przesyłania komunikatów dotyczących publikowania i subskrybowania: platforma Kafka udostępnia interfejs API producenta do publikowania rekordów w temacie platformy Kafka.Publish-subscribe messaging pattern: Kafka provides a Producer API for publishing records to a Kafka topic. Interfejs API klienta jest używany podczas subskrybowania tematu.The Consumer API is used when subscribing to a topic.

    Aby uzyskać więcej informacji, zobacz Start with Apache Kafka on HDInsight (Rozpoczynanie pracy z platformą Apache Kafka w usłudze HDInsight).For more information, see Start with Apache Kafka on HDInsight.

  • Przetwarzanie strumienia: platforma Kafka jest często używana z systemem Apache Storm lub platformą Spark na potrzeby przetwarzania strumienia w czasie rzeczywistym.Stream processing: Kafka is often used with Apache Storm or Spark for real-time stream processing. Na platformie Kafka 0.10.0.0 (usługa HDInsight w wersji 3.5 i 3.6) wprowadzono interfejs API przesyłania strumieniowego, który umożliwia tworzenie rozwiązań do transmisji strumieniowej bez konieczności stosowania rozwiązań Storm i 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.

    Aby uzyskać więcej informacji, zobacz Start with Apache Kafka on HDInsight (Rozpoczynanie pracy z platformą Apache Kafka w usłudze HDInsight).For more information, see Start with Apache Kafka on HDInsight.

  • Skalowanie w poziomie: platforma Kafka dzieli strumienie na partycje w różnych węzłach klastra usługi HDInsight.Horizontal scale: Kafka partitions streams across the nodes in the HDInsight cluster. Procesy klientów mogą być kojarzone z poszczególnymi partycjami, aby umożliwić równoważenie obciążenia podczas korzystania z rekordów.Consumer processes can be associated with individual partitions to provide load balancing when consuming records.

    Aby uzyskać więcej informacji, zobacz Start with Apache Kafka on HDInsight (Rozpoczynanie pracy z platformą Apache Kafka w usłudze HDInsight).For more information, see Start with Apache Kafka on HDInsight.

  • Dostarczanie w określonej kolejności: rekordy na każdej partycji są przechowywane w strumieniu w tej samej kolejności, w której zostały odebrane.In-order delivery: Within each partition, records are stored in the stream in the order that they were received. Skojarzenie jednego procesu klienta z jedną partycją pozwala zagwarantować, że rekordy są przetwarzane we właściwej kolejności.By associating one consumer process per partition, you can guarantee that records are processed in-order.

    Aby uzyskać więcej informacji, zobacz Start with Apache Kafka on HDInsight (Rozpoczynanie pracy z platformą Apache Kafka w usłudze HDInsight).For more information, see Start with Apache Kafka on HDInsight.

Przypadki zastosowańUse cases

  • Obsługa komunikatów: platforma Kafka obsługuje wzorzec przesyłania komunikatów dotyczących publikowania i subskrybowania, dlatego jest często używana jako broker komunikatów.Messaging: Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.

  • Śledzenie działań: platforma Kafka rejestruje rekordy w określonej kolejności, dlatego może służyć do śledzenia i ponownego tworzenia działań.Activity tracking: Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Mogą to być na przykład działania użytkownika w witrynie sieci Web lub aplikacji.For example, user actions on a web site or within an application.

  • Agregacja: przetwarzanie strumienia pozwala agregować informacje z różnych strumieni w celu łączenia i centralizowania informacji w formie danych operacyjnych.Aggregation: Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.

  • Przekształcanie: przetwarzanie strumienia umożliwia łączenie i urozmaicanie danych z wielu tematów wejściowych w formie tematów wyjściowych.Transformation: Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

Następne krokiNext steps

Aby dowiedzieć się, jak korzystać z platformy Apache Kafka w usłudze HDInsight, użyj następujących linków:Use the following links to learn how to use Apache Kafka on HDInsight: