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,
InvalidKafkaScaleDownRequestErrorCodea 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:
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: