Mi az Apache Kafka az Azure HDInsightWhat is Apache Kafka in Azure HDInsight

Az Apache Kafka egy nyílt forráskódú elosztott streamelési platform streamadatfolyamatok és -alkalmazások létrehozásához.Apache Kafka is an open-source distributed streaming platform that can be used to build real-time streaming data pipelines and applications. A Kafka az üzenetsorokhoz hasonló üzenetközvetítő funkciót is biztosít, amellyel adatstreameket tehet közzé, illetve feliratkozhat rájuk.Kafka also provides message broker functionality similar to a message queue, where you can publish and subscribe to named data streams.

A HDInsight-alapú Kafka jellegzetességei:The following are specific characteristics of Kafka on HDInsight:

  • Egy felügyelt szolgáltatás, amely egyszerűsített konfigurációs folyamatot biztosít.It is a managed service that provides a simplified configuration process. Ennek eredménye egy, a Microsoft által tesztelt és támogatott konfiguráció.The result is a configuration that is tested and supported by Microsoft.

  • A Microsoft 99,9%-os szolgáltatói szerződést (SLA) nyújt a Kafka üzemidejével kapcsolatban.Microsoft provides a 99.9% Service Level Agreement (SLA) on Kafka uptime. További információkért lásd a HDInsight szolgáltatói szerződésével kapcsolatos információkat ismertető dokumentumot.For more information, see the SLA information for HDInsight document.

  • A Kafka az Azure Managed Disks szolgáltatást használja háttértárként.It uses Azure Managed Disks as the backing store for Kafka. A Managed Disks akár 16 TB tárhelyet biztosíthat Kafka-közvetítőnként.Managed Disks can provide up to 16 TB of storage per Kafka broker. Információk a HDInsight alatt futó Kafka felügyelt lemezek konfigurálása: jobb méretezhetőség érdekében az Apache Kafka on HDInsight.For information on configuring managed disks with Kafka on HDInsight, see Increase scalability of Apache Kafka on HDInsight.

    További tudnivalók a felügyelt lemezekről: Azure Managed Disks.For more information on managed disks, see Azure Managed Disks.

  • A Kafkát egy egydimenziós állványnézettel tervezték.Kafka was designed with a single dimensional view of a rack. Az Azure az állványokat két dimenzióra osztja: a frissítési tartományokra (UD) és a tartalék tartományokra (FD).Azure separates a rack into two dimensions - Update Domains (UD) and Fault Domains (FD). A Microsoft biztosítja azokat az eszközöket, amelyek kiegyensúlyozhatják a Kafka-partíciókat és -replikákat a frissítési és tartalék tartományok között.Microsoft provides tools that rebalance Kafka partitions and replicas across UDs and FDs.

    További információkért lásd: magas rendelkezésre állás az Apache Kafka on HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • A HDInsight lehetővé teszi a feldolgozó csomópontok (amelyeken a Kafka-közvetítő fut) számának a fürt létrehozását követő módosítását.HDInsight allows you to change the number of worker nodes (which host the Kafka-broker) after cluster creation. A méretezés elvégezhető az Azure Portal, az Azure PowerShell vagy egyéb Azure-kezelőfelületek segítségével.Scaling can be performed from the Azure portal, Azure PowerShell, and other Azure management interfaces. A Kafka esetében érdemes kiegyenlíteni a partíciók replikáit a méretezési műveleteket követően.For Kafka, you should rebalance partition replicas after scaling operations. A partíciók kiegyenlítése lehetővé teszi, hogy a Kafka kihasználja a feldolgozó csomópontok új mennyiségét.Rebalancing partitions allows Kafka to take advantage of the new number of worker nodes.

    További információkért lásd: magas rendelkezésre állás az Apache Kafka on HDInsight.For more information, see High availability with Apache Kafka on HDInsight.

  • Az Azure Monitor naplóira a HDInsight alatt futó Kafka figyelésére használható.Azure Monitor logs can be used to monitor Kafka on HDInsight. Az Azure Monitor a Kafkából naplózza a Surface-eszközök virtuális gépek szintadatait, például a lemez és a hálózati adapterek metrikáit és a JMX-metrikáit.Azure Monitor logs surfaces virtual machine level information, such as disk and NIC metrics, and JMX metrics from Kafka.

    További információkért lásd: -naplók elemzése a HDInsight-beli Apache kafka.For more information, see Analyze logs for Apache Kafka on HDInsight.

Az Apache Kafka on HDInsight-architektúraApache Kafka on HDInsight architecture

Az alábbi ábra egy tipikus Kafka-konfigurációt mutat be, amely felhasználói csoportok, particionálás és replikálás használatával biztosítja az események párhuzamos olvasását hibatűréssel: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-fürtkonfigurációs ábra

A Kafka-fürt állapotát az Apache ZooKeeper felügyeli.Apache ZooKeeper manages the state of the Kafka cluster. A ZooKeeper egyidejű, rugalmas és kis késleltetésű tranzakciókhoz készült.Zookeeper is built for concurrent, resilient, and low-latency transactions.

A Kafka a rekordokat (adatokat) témakörökben tárolja.Kafka stores records (data) in topics. A rekordokat előállítók hozzák létre, és fogyasztók használják fel.Records are produced by producers, and consumed by consumers. Az előállítók Kafka-közvetítőknek adják tovább a rekordokat.Producers send records to Kafka brokers. A HDInsight-fürt mindegyik feldolgozó csomópontja egy Kafka-közvetítő.Each worker node in your HDInsight cluster is a Kafka broker.

A témakörök particionálják a rekordokat a közvetítők között.Topics partition records across brokers. A rekordok felhasználásakor partíciónként legfeljebb egy fogyasztó használható, az adatok párhuzamos feldolgozása érdekében.When consuming records, you can use up to one consumer per partition to achieve parallel processing of the data.

A partíciók csomópontok közötti duplikálásához a rendszer replikációt alkalmaz, amely védelmet nyújt a csomópontok (közvetítők) leállásával szemben.Replication is employed to duplicate partitions across nodes, protecting against node (broker) outages. Az ábrán (L) jelöléssel rendelkező partíció az adott partíció vezetője.A partition denoted with an (L) in the diagram is the leader for the given partition. Az előállítói forgalmat a csomópontok vezetőjéhez irányítja a rendszer a ZooKeeper által kezelt állapot segítségével.Producer traffic is routed to the leader of each node, using the state managed by ZooKeeper.

Miért érdemes a HDInsight Apache Kafka használatának?Why use Apache Kafka on HDInsight?

Néhány gyakori feladat és minta, amelyek a HDInsight-alapú Kafkával elvégezhetők:The following are common tasks and patterns that can be performed using Kafka on HDInsight:

  • Az Apache Kafka-adatok replikálása: A Kafka biztosítja a MirrorMaker eszközt, amely replikálja az adatokat a Kafka-fürtök között.Replication of Apache Kafka data: Kafka provides the MirrorMaker utility, which replicates data between Kafka clusters.

    A MirrorMaker használatával további információkért lásd: Apache Kafka-témakörök replikálása Apache Kafka on HDInsight.For information on using MirrorMaker, see Replicate Apache Kafka topics with Apache Kafka on HDInsight.

  • Közzétételi-feliratkozási üzenetkezelési minta: A Kafka egy előállítói API-t biztosít a közzétételi rekordok Kafka-témakörökbe.Publish-subscribe messaging pattern: Kafka provides a Producer API for publishing records to a Kafka topic. A fogyasztói API-ra a témakörökre való feliratkozáskor van szükség.The Consumer API is used when subscribing to a topic.

    További információkért lásd: a HDInsight Apache Kafka használatának első lépései.For more information, see Start with Apache Kafka on HDInsight.

  • Stream-feldolgozás: A Kafka gyakran használják valós idejű streamfeldolgozásra az Apache Stormmal vagy Sparkkal.Stream processing: Kafka is often used with Apache Storm or Spark for real-time stream processing. A Kafka 0.10.0.0 (HDInsight 3.5-ös és 3.6-os verzió) egy olyan streamelési API-t vezetett be, amely lehetővé teszi a streammegoldások Storm vagy Spark nélküli fejlesztését.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.

    További információkért lásd: a HDInsight Apache Kafka használatának első lépései.For more information, see Start with Apache Kafka on HDInsight.

  • Horizontális skálázás: A Kafka szétosztja a streameket a HDInsight-fürt csomópontjai között.Horizontal scale: Kafka partitions streams across the nodes in the HDInsight cluster. A fogyasztói folyamatok társíthatók az egyes partíciókkal, így biztosítható a terheléselosztás a rekordok használatakor.Consumer processes can be associated with individual partitions to provide load balancing when consuming records.

    További információkért lásd: a HDInsight Apache Kafka használatának első lépései.For more information, see Start with Apache Kafka on HDInsight.

  • Érkezési sorrendben történő kézbesítés: Minden egyes partíción belül rögzíti az adatfolyamot érkezési sorrendben sorrendben vannak tárolva.In-order delivery: Within each partition, records are stored in the stream in the order that they were received. Partíciónként egy fogyasztói folyamat társításával garantálhatja, hogy a rekordok feldolgozása érkezési sorrendben történjen.By associating one consumer process per partition, you can guarantee that records are processed in-order.

    További információkért lásd: a HDInsight Apache Kafka használatának első lépései.For more information, see Start with Apache Kafka on HDInsight.

Használati esetekUse cases

  • Üzenetküldési: Mivel támogatja a közzétételi-feliratkozási, a Kafkát gyakran használják üzenetközvetítőként.Messaging: Since it supports the publish-subscribe message pattern, Kafka is often used as a message broker.

  • Tevékenységkövetés: A Kafka érkezési sorrendben naplózás a rekordok kínál, mivel a használat nyomon követése, és hozza létre a tevékenységek.Activity tracking: Since Kafka provides in-order logging of records, it can be used to track and re-create activities. Ilyen tevékenységek például a felhasználók műveletei egy webhelyen vagy egy alkalmazásban.For example, user actions on a web site or within an application.

  • Összesítés: Adatfolyam-feldolgozó, összesítheti a egyesítse és központosítsa az operatív adatokat nyerhet ki adatokat a különböző Streamek információit.Aggregation: Using stream processing, you can aggregate information from different streams to combine and centralize the information into operational data.

  • Átalakítás: Streamfeldolgozás használatával egyesítheti és bővítheti az adatokat több bemeneti témakörből egy vagy több kimeneti témakörbe.Transformation: Using stream processing, you can combine and enrich data from multiple input topics into one or more output topics.

További lépésekNext steps

A HDInsighton futó Apache Kafka használatának megismeréséhez tekintse meg a következő hivatkozásokat:Use the following links to learn how to use Apache Kafka on HDInsight: