Mi az az Apache Kafka az Azure HDInsightban?

Az Apache Kafka egy nyílt forráskódú elosztott streamelési platform streamadatfolyamatok és -alkalmazások létrehozásához. A Kafka az üzenetsorokhoz hasonló üzenetközvetítő funkciót is biztosít, amellyel adatstreameket tehet közzé, illetve feliratkozhat rájuk.

A HDInsight-alapú Kafka jellegzetességei:

  • Ez egy felügyelt szolgáltatás, amely egyszerűsített konfigurációs folyamatot biztosít. Ennek eredménye egy, a Microsoft által tesztelt és támogatott konfiguráció.

  • A Microsoft 99,9%-os szolgáltatói szerződést (SLA) nyújt a Kafka üzemidejével kapcsolatban. További információkért lásd a HDInsight szolgáltatói szerződésével kapcsolatos információkat ismertető dokumentumot.

  • A Kafka az Azure Managed Disks szolgáltatást használja háttértárként. A Managed Disks akár 16 TB tárhelyet biztosíthat Kafka-közvetítőnként. A felügyelt lemezek HDInsight-alapú Kafkával való konfigurálásával kapcsolatos információkért lásd: Az Apache Kafka skálázhatóságának növelése a HDInsighton.

    További tudnivalók a felügyelt lemezekről: Azure Managed Disks.

  • A Kafkát egy egydimenziós állványnézettel tervezték. Az Azure az állványokat két dimenzióra osztja: a frissítési tartományokra (UD) és a tartalék tartományokra (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.

    További információ: Magas rendelkezésre állás az Apache Kafka on HDInsight használatával.

  • 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. A vertikális skálázás az Azure Portalról, az Azure PowerShellből és más Azure felügyeleti felületekről végezhető el. A Kafka esetében érdemes kiegyenlíteni a partíciók replikáit a méretezési műveleteket követően. A partíciók kiegyenlítése lehetővé teszi, hogy a Kafka kihasználja a feldolgozó csomópontok új mennyiségét.

    A HDInsight Kafka nem támogatja a fürtön belüli közvetítők számának lefelé skálázását vagy csökkentését. Ha a csomópontok számának csökkentésére tett kísérlet történik, InvalidKafkaScaleDownRequestErrorCode a rendszer hibát ad vissza.

    További információ: Magas rendelkezésre állás az Apache Kafka on HDInsight használatával.

  • Az Azure Monitor-naplók a Kafka monitorozására használhatók a HDInsighton. Az Azure Monitor-naplók virtuálisgép-szintű információkat, például lemez- és hálózati adapter-metrikákat, valamint a Kafkából származó JMX-metrikákat jelenítik meg.

    További információ: Apache Kafka on HDInsight naplóinak elemzése.

Apache Kafka on HDInsight architektúra

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:

Kafka cluster configuration diagram

A Kafka-fürt állapotát az Apache ZooKeeper felügyeli. A ZooKeeper egyidejű, rugalmas és kis késleltetésű tranzakciókhoz készült.

A Kafka a rekordokat (adatokat) témakörökben tárolja. A rekordokat előállítók hozzák létre, és fogyasztók használják fel. Az előállítók Kafka-közvetítőknek adják tovább a rekordokat. A HDInsight-fürt mindegyik feldolgozó csomópontja egy Kafka-közvetítő.

A témakörök particionálják a rekordokat a közvetítők között. A rekordok felhasználásakor partíciónként legfeljebb egy fogyasztó használható, az adatok párhuzamos feldolgozása érdekében.

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. Az ábrán (L) jelöléssel rendelkező partíció az adott partíció vezetője. 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.

Miért érdemes az Apache Kafka on HDInsightot használni?

Néhány gyakori feladat és minta, amelyek a HDInsight-alapú Kafkával elvégezhetők:

Használat Description
Apache Kafka-adatok replikálása A Kafka biztosítja a MirrorMaker segédprogramot, amely adatokat replikál a Kafka-fürtök között. További információ a MirrorMaker használatáról: Apache Kafka-témakörök replikálás a HDInsighton futó Apache Kafkával.
Közzétételi-feliratkozási üzenetküldési minta A Kafka egy Producer API-t biztosít a rekordok Kafka-témakörökben való közzétételéhez. A fogyasztói API-ra a témakörökre való feliratkozáskor van szükség. További információ: Start with Apache Kafka on HDInsight.
Stream-feldolgozás A Kafkát gyakran használják az Apache Stormban vagy a Sparkban a valós idejű streamfeldolgozáshoz. 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. További információ: Start with Apache Kafka on HDInsight.
Horizontális skálázhatóság A Kafka particionál streameket a HDInsight-fürt csomópontjai között. A fogyasztói folyamatok társíthatók az egyes partíciókkal, így biztosítható a terheléselosztás a rekordok használatakor. További információ: Start with Apache Kafka on HDInsight.
Rendelésben történő kézbesítés Az egyes partíciókon belül a rekordok a streamben a fogadásuk sorrendjében vannak tárolva. 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. További információ: Start with Apache Kafka on HDInsight.
Üzenetkezelés Mivel támogatja a közzétételi-feliratkozási üzenetmintát, a Kafkát gyakran használják üzenetközvetítőként.
Tevékenységkövetés Mivel a Kafka a rekordok sorrendben történő naplózását biztosítja, a tevékenységek nyomon követésére és újbóli létrehozására használható. Ilyen tevékenységek például a felhasználók műveletei egy webhelyen vagy egy alkalmazásban.
Összesítés A streamfeldolgozással a különböző adatfolyamokból származó információkat összesítheti, így az információkat összevonhatja és központosíthatja operatív adatokká.
Átalakítás Streamfeldolgozással több bemeneti témakör adatait kombinálhatja és bővítheti egy vagy több kimeneti témakörbe.

Következő lépések

A HDInsighton futó Apache Kafka használatának megismeréséhez tekintse meg a következő hivatkozásokat: