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 HDInsighton futó Kafkával való konfigurálásáról további információt az Apache Kafka skálázhatóságának növelése a HDInsighton című témakörben talál.

    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 Kafkával a HDInsighton.

  • 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 kísérletet tesznek a csomópontok számának csökkentésére, InvalidKafkaScaleDownRequestErrorCode a rendszer hibát ad vissza.

    További információ: Magas rendelkezésre állás az Apache Kafkával a HDInsighton.

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

    További információ: Apache Kafka naplóinak elemzése a HDInsighton.

Apache Kafka a HDInsight architektúrán

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-t használni a HDInsighton?

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

Használat Leírás
Apache Kafka-adatok replikálása A Kafka biztosítja a MirrorMaker segédprogramot, amely replikálja az adatokat a Kafka-fürtök között. A MirrorMaker használatával kapcsolatos információkért lásd : Apache Kafka-témakörök replikálás az Apache Kafkával a HDInsighton.
Közzétételi-feliratkozási üzenetkezelé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.
Streamfeldolgozás A Kafkát gyakran használják a Sparkban valós idejű streamfeldolgozáshoz. A Kafka 2.1.1 és 2.4.1 (HDInsight 4.0-s és 5.0-s verzió) támogatja a streamelési API-kat, amelyek lehetővé teszik streamelési megoldások létrehozását Spark nélkül. 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.
Megrendelésben történő kézbesítés Az egyes partíciókon belül a rekordok a streamben a beérkezés 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, hogy az információkat operatív adatokká egyesítse és központosítsa.
Átalakítás A 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: