Rövid útmutató: Apache Kafka-fürt létrehozása az Azure HDInsightban az Azure Portal használatával

Az Apache Kafka egy nyílt forráskódú, elosztott streamelési platform. Sokszor használják üzenetközvetítőként, mivel a közzétételi-feliratkozási üzenetsorokhoz hasonló funkciókat kínál.

Ebben a rövid útmutatóban megtudhatja, hogyan hozhat létre Apache Kafka-fürtöt az Azure Portal használatával. Azt is megtudhatja, hogyan küldhet és fogadhat üzeneteket a mellékelt segédprogramokkal az Apache Kafka segítségével. A rendelkezésre álló konfigurációk részletes ismertetését a FÜRTÖK beállítása a HDInsightban című témakörben talál. A portál fürtök létrehozására való használatával kapcsolatos további információkért lásd : Fürtök létrehozása a portálon.

Figyelmeztetés

A HDInsight-fürtök számlázása percenként történik, akár használja őket, akár nem. A használat befejezése után mindenképpen törölje a fürtöt. Megtudhatja , hogyan törölhet HDInsight-fürtöt.

Az Apache Kafka API csak az ugyanazon virtuális hálózaton belüli erőforrások számára érhető el. Ebben a rövid útmutatóban közvetlenül az SSH használatával érheti el a fürtöt. Ha más szolgáltatásokat, hálózatokat vagy virtuális gépeket szeretne csatlakoztatni az Apache Kafkához, először létre kell hoznia egy virtuális hálózatot, majd létre kell hoznia a hálózaton belüli erőforrásokat. További információt a Csatlakozás az Apache Kafkához virtuális hálózattal című dokumentumban találhat. A HDInsight virtuális hálózatainak tervezésével kapcsolatos általános információkért lásd : Virtuális hálózat tervezése az Azure HDInsighthoz.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Előfeltételek

Egy SSH-ügyfél. További információért lásd: Csatlakozás a HDInsighthoz (Apache Hadoop) SSH-val.

Apache Kafka-fürt létrehozása

Apache Kafka-fürt HDInsighton való létrehozásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.

  2. A felső menüsávból válassza az +Erőforrás létrehozása elemet.

    Azure portal create resource HDInsight.

  3. Válassza az Analytics>Azure HDInsight lehetőséget a HDInsight-fürt létrehozása lapra való ugráshoz.

  4. Az Alapok lapon adja meg a következő információkat:

    Tulajdonság Leírás
    Előfizetés A legördülő listában válassza ki a fürthöz használt Azure-előfizetést.
    Erőforráscsoport Hozzon létre egy erőforráscsoportot, vagy válasszon ki egy már meglévőt. Az erőforráscsoport az Azure összetevőit tartalmazó tároló. Ebben az esetben az erőforráscsoport a HDInsight-fürtöt és a függő Azure Storage-fiókot tartalmazza.
    Fürt neve Adjon meg egy globálisan egyedi nevet. A név legfeljebb 59 karakterből állhat, beleértve a betűket, számokat és kötőjeleket. A név első és utolsó karaktere nem lehet kötőjel.
    Régió A legördülő listában válassza ki azt a régiót, ahol a fürt létrejön. Válasszon egy önhöz közelebbi régiót a jobb teljesítmény érdekében.
    Fürt típusa A lista megnyitásához válassza a Fürttípus kiválasztása lehetőséget. A listában válassza a Kafka elemet fürttípusként.
    Verzió A fürttípus alapértelmezett verziója lesz megadva. Válasszon a legördülő listából, ha másik verziót szeretne megadni.
    A fürt bejelentkezési felhasználóneve és jelszava Az alapértelmezett bejelentkezési név a következő admin: . A jelszónak legalább 10 karakter hosszúságúnak kell lennie, és tartalmaznia kell legalább egy számjegyet, egy nagybetűt és egy kisbetűt, egy nem alfanumerikus karaktert (kivéve a karaktereket ' ` "). Győződjön meg arról, hogy nem ad meg gyakori jelszavakat, például Pass@word1.
    Secure Shell- (SSH-) felhasználónév Az alapértelmezett felhasználónév a következő sshuser: . SSH-felhasználónévként más nevet is megadhat.
    Fürt bejelentkezési jelszavának használata SSH-hoz Jelölje be ezt a jelölőnégyzetet, ha ugyanazt a jelszót szeretné használni az SSH-felhasználó számára, mint amelyet a fürt bejelentkezési felhasználójának megadott.

    Azure portal create cluster basics.

    Minden egyes Azure-régió (hely) tartalék tartományokat biztosít. A tartalék tartomány az alapul szolgáló hardver logikai csoportosítása egy Azure-adatközpontban. Mindegyik tartalék tartomány közös áramforrással és hálózati kapcsolóval rendelkezik. A HDInsight-fürtön belül a csomópontokat implementáló virtuális gépek és felügyelt lemezek ezek között a tartalék tartományok között vannak elosztva. Ez az architektúra csökkenti a fizikai hardverhibák lehetséges hatását.

    Az adatok magas rendelkezésre állásának biztosításához válasszon egy olyan régiót (helyet), amely három tartalék tartományt tartalmaz. Az adott régióban található tartalék tartományok számáról további információkat a Linux rendszerű virtuális gépek rendelkezésre állása dokumentumban talál.

    Válassza a Tovább: Tárolás >> lapot a tárolási beállítások eléréséhez.

  5. A Storage lapon adja meg a következő értékeket:

    Tulajdonság Leírás
    Elsődleges tároló típusa Használja az alapértelmezett Azure Storage-értéket.
    Kiválasztási módszer Használja az alapértelmezett kiválasztási értéket a listából.
    Az elsődleges tárfiók A legördülő listában válasszon ki egy meglévő tárfiókot, vagy válassza az Új létrehozása lehetőséget. Ha új fiókot hoz létre, a névnek 3 és 24 karakter közötti hosszúságúnak kell lennie, és csak számokat és kisbetűket tartalmazhat
    Tároló Használja az automatikusan kitöltött értéket.

    HDInsight Linux get started provide cluster storage values.

    Válassza a Biztonság + hálózatkezelés lapot.

  6. Ebben a rövid útmutatóban hagyja meg az alapértelmezett biztonsági beállításokat. Az Enterprise Security csomaggal kapcsolatos további információkért látogasson el a HdInsight-fürt konfigurálása vállalati biztonsági csomaggal a Microsoft Entra Domain Services használatával. Ha meg szeretné tudni, hogyan használhatja saját kulcsát az Apache Kafka Disk Encryptionhez, látogasson el az ügyfél által felügyelt kulcslemeztitkosításra

    Ha szeretné egy virtuális hálózathoz csatlakoztatni a fürtöt, válasszon egy virtuális hálózatot a Virtuális hálózat legördülő listából.

    Add cluster to a virtual network.

    Válassza a Konfiguráció + díjszabás lapot.

  7. Az Apache Kafka HDInsighton való rendelkezésre állásának biztosításához a feldolgozó csomópont csomópontjainakszámát 3 vagy annál nagyobb értékre kell állítani. Az alapértelmezett érték 4.

    A feldolgozó csomópontonkénti standard lemezek konfigurálják az Apache Kafka skálázhatóságát a HDInsighton. Az Apache Kafka on HDInsight a fürt virtuális gépeinek helyi lemezén tárolja az adatokat. Mivel az Apache Kafka nagy ki- és bemenő adatforgalmat kezel, az Azure Managed Disks szolgáltatás gondoskodik a magas átviteli sebességről és csomópontonként több tárhelyről. A felügyelt lemez típusa Standard (HDD) vagy Prémium (SSD) lehet. A lemez típusa a feldolgozó csomópontok (Apache Kafka-közvetítők) által használt virtuálisgép-mérettől függ. A DS és GS sorozatbeli virtuális gépek automatikusan prémium lemezeket használnak. Minden más virtuálisgép-típus standard lemezeket használ.

    Set the Apache Kafka cluster size.

    Válassza a Véleményezés + létrehozás lapot.

  8. Tekintse át a fürt konfigurációját. Módosítsa a helytelen beállításokat. Végül válassza a Létrehozás lehetőséget a fürt létrehozásához.

    Screenshot showing kafka cluster configuration summary for HDI version 5.0.

    A fürt létrehozása 20 percig is eltarthat.

Csatlakozás a fürthöz

  1. Az ssh paranccsal csatlakozzon a fürthöz. Szerkessze az alábbi parancsot úgy, hogy lecseréli a CLUSTERNAME nevet a fürt nevére, majd írja be a parancsot:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Ha a rendszer kéri, adja meg az SSH-felhasználó jelszavát.

    Miután csatlakozott, az alábbi szöveghez hasonló információkat lát:

    Authorized uses only. All activity may be monitored and reported.
    Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.13.0-1011-azure x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        https://www.ubuntu.com/business/services/cloud
    
    83 packages can be updated.
    37 updates are security updates.
    
    
    Welcome to Apache Kafka on HDInsight.
    
    Last login: Thu Mar 29 13:25:27 2018 from 108.252.109.241
    

Az Apache Zookeeper és a Broker gazdagép adatainak lekérése

A Kafka használatakor ismernie kell az Apache Zookeeper és a Broker gazdagépeit. Az Apache Kafka API és a Kafkában elérhető számos segédprogram használja ezeket a gazdagépeket.

Ebben a szakaszban lekérheti a fürt Apache Ambari REST API-jának gazdagépadatait.

  1. Telepítse a jq parancssori JSON-processzort. Ez a segédprogram JSON-dokumentumok elemzésére szolgál, és hasznos a gazdagép adatainak elemzéséhez. A nyílt SSH-kapcsolaton a telepítéshez jqírja be a következő parancsot:

    sudo apt -y install jq
    
  2. Jelszóváltozó beállítása. Cserélje le PASSWORD a fürt bejelentkezési jelszavára, majd írja be a következő parancsot:

    export PASSWORD='PASSWORD'
    
  3. Bontsa ki a helyesen kisbetűs fürtnevet. A fürt nevének tényleges burkolata eltérhet a várttól, a fürt létrehozásának módjától függően. Ez a parancs beolvasja a tényleges burkolatot, majd egy változóban tárolja. Írja be az alábbi parancsot:

    export CLUSTER_NAME=$(curl -u admin:$PASSWORD -sS -G "http://headnodehost:8080/api/v1/clusters" | jq -r '.items[].Clusters.cluster_name')
    

    Feljegyzés

    Ha ezt a folyamatot a fürtön kívülről végzi, a fürt nevének tárolására más eljárás is létezik. Kérje le a fürt nevét kisbetűvel az Azure Portalról. Ezután cserélje le a fürt nevét <clustername> a következő parancsra, és hajtsa végre: export clusterName='<clustername>'.

  4. Ha környezeti változót szeretne beállítani a Zookeeper gazdagépadataival, használja az alábbi parancsot. A parancs lekéri az összes Zookeeper-gazdagépet, majd csak az első két bejegyzést adja vissza. Ez azért van, mert hasznos lehet a redundancia, ha az egyik gazdagép esetleg nem érhető el.

    export KAFKAZKHOSTS=$(curl -sS -u admin:$PASSWORD -G https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER | jq -r '["\(.host_components[].HostRoles.host_name):2181"] | join(",")' | cut -d',' -f1,2);
    

    Feljegyzés

    Ehhez a parancshoz Ambari-hozzáférés szükséges. Ha a fürt egy NSG mögött található, futtassa ezt a parancsot egy olyan gépről, amely hozzáfér az Ambarihoz.

  5. A környezeti változók helyes beállításának ellenőrzését az alábbi paranccsal végezheti el:

    echo $KAFKAZKHOSTS
    

    Ez a parancs az alábbi szöveghez hasonló információt ad vissza:

    <zookeepername1>.eahjefxxp1netdbyklgqj5y1ud.ex.internal.cloudapp.net:2181,<zookeepername2>.eahjefxxp1netdbyklgqj5y1ud.ex.internal.cloudapp.net:2181

  6. A környezeti változók Apache Kafka-közvetítőgazdagépek adataival való beállításához használja az alábbi parancsot:

    export KAFKABROKERS=$(curl -sS -u admin:$PASSWORD -G https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/KAFKA/components/KAFKA_BROKER | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2);
    

    Feljegyzés

    Ehhez a parancshoz Ambari-hozzáférés szükséges. Ha a fürt egy NSG mögött található, futtassa ezt a parancsot egy olyan gépről, amely hozzáfér az Ambarihoz.

  7. A környezeti változók helyes beállításának ellenőrzését az alábbi paranccsal végezheti el:

    echo $KAFKABROKERS
    

    Ez a parancs az alábbi szöveghez hasonló információt ad vissza:

    <brokername1>.eahjefxxp1netdbyklgqj5y1ud.cx.internal.cloudapp.net:9092,<brokername2>.eahjefxxp1netdbyklgqj5y1ud.cx.internal.cloudapp.net:9092

Apache Kafka-témakörök kezelése

A Kafka témakörökben tárolja az adatstreameket. A kafka-topics.sh segédprogrammal kezelheti a témaköröket.

  • Egy témakör létrehozásához használja az alábbi parancsot az SSH-kapcsolatban:

    /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --create --replication-factor 3 --partitions 8 --topic test --zookeeper $KAFKAZKHOSTS
    

    Ez a parancs a $KAFKAZKHOSTS-ban tárolt gazdagépadatok használatával kapcsolódik a Zookeeperhez, majd létrehoz egy test nevű Apache Kafka-témakört.

    • A témakörben tárolt adatok nyolc partícióban vannak elosztva.

    • Mindegyik partíció három feldolgozó csomópontra van replikálva a fürtben.

      • Ha olyan Azure-régióban hozta létre a fürtöt, amely három tartalék tartományt biztosít, használjon 3-as replikációs tényezőt. Ellenkező esetben használjon 4-es replikációs tényezőt.

      • A három tartalék tartományt tartalmazó régiókban a 3-as replikációs tényező lehetővé teszi, hogy a replikákat el lehessen osztani a tartalék tartományok között. A két tartalék tartományt tartalmazó régiókban a négyes replikációs tényező egyenlően osztja el a replikákat a tartományok között.

      • Az adott régióban található tartalék tartományok számáról további információkat a Linux rendszerű virtuális gépek rendelkezésre állása dokumentumban talál.

      • Az Apache Kafka nem észleli a tartalék Azure-tartományokat. Témakörök számára történő partícióreplikák létrehozásakor lehetséges, hogy a Kafka nem a magas rendelkezésre állásnak megfelelően osztja ki a replikákat.

      • A magas rendelkezésre állás biztosításához használja az Apache Kafka partíció-újraegyensúlyozási eszközét. Ezt az eszközt egy SSH-kapcsolatból kell futtatni az Apache Kafka-fürt főcsomópontjához.

      • Az Apache Kafka-adatok lehető legmagasabb rendelkezésre állása érdekében egyensúlyozza újra a témaköre partícióreplikáit a következő esetekben:

        • Új témakör vagy partíció létrehozásakor

        • Fürt vertikális felskálázásakor

  • A témakörök listázásához használja az alábbi parancsot:

    /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --list --zookeeper $KAFKAZKHOSTS
    

    Ez a parancs listázza az Apache Kafka-fürtön elérhető témaköröket.

  • Egy témakör törléséhez használja az alábbi parancsot:

    /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --delete --topic topicname --zookeeper $KAFKAZKHOSTS
    

    Ez a parancs törli a topicname nevű témakört.

    Figyelmeztetés

    Ha törli a korábban létrehozott test témakört, akkor újra létre kell hoznia. A dokumentum későbbi lépései használni fogják.

A kafka-topics.sh segédprogrammal elérhető parancsokkal kapcsolatos további információért használja a következő parancsot:

/usr/hdp/current/kafka-broker/bin/kafka-topics.sh

Rekordok létrehozása és felhasználása

A Kafka témakörökben tárolja a rekordokat. A rekordokat előállítók hozzák létre, és fogyasztók használják fel. A létrehozók és a feldolgozók a Kafka-közvetítő szolgáltatással kommunikálnak. A HDInsight-fürt mindegyik feldolgozó csomópontja egy Apache Kafka-közvetítőgazdagép.

Kövesse az alábbi lépéseket a rekordoknak a korábban létrehozott test témakörben való tárolására, majd a beolvasásukra egy fogyasztó használatával:

  1. Ha rekordokat szeretne írni a témakörbe, használja az SSH-kapcsolat kafka-console-producer.sh segédprogramját:

    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list $KAFKABROKERS --topic test
    

    A parancs kiadása után egy üres sor jelenik meg.

  2. Írjon be egy szöveges üzenetet az üres sorba, majd nyomja le az Enter billentyűt. Írjon be így még néhány szöveges üzenetet, majd a Ctrl + C billentyűparancs használatával térjen vissza a szokásos parancssorhoz. A rendszer minden sort külön rekordként küld el az Apache Kafka-témakörbe.

  3. Ha rekordokat szeretne olvasni a témakörből, használja az SSH-kapcsolat kafka-console-consumer.sh segédprogramját:

    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --bootstrap-server $KAFKABROKERS --topic test --from-beginning
    

    A parancs lekéri a rekordokat a témakörből, majd megjeleníti őket. A --from-beginning használata arra utasítja a fogyasztót, hogy a stream elejétől kezdje a műveletet, így az összes rekord lekérése megtörténik.

    Ha a Kafka régebbi verzióját használja, cserélje le a --bootstrap-server $KAFKABROKERS előtagot a következőre: --zookeeper $KAFKAZKHOSTS.

  4. Használja a Ctrl + C billentyűparancsot a fogyasztó leállításához.

Szoftveresen is létrehozhat előállítókat és fogyasztókat. Az API használatára példaként tekintse meg az Apache Kafka Producer and Consumer API-t HDInsight-dokumentummal .

Az erőforrások eltávolítása

A jelen rövid útmutató által létrehozott erőforrások törléséhez törölheti az erőforráscsoportot. Az erőforráscsoport törlésekor a kapcsolódó HDInsight-fürt, valamint az esetlegesen az erőforráscsoporthoz társított egyéb erőforrások is törlődnek.

Az erőforráscsoport eltávolítása az Azure Portallal:

  1. Az Azure Portalon bontsa ki a bal oldalon a szolgáltatásmenüt, és válassza az Erőforráscsoportok lehetőséget az erőforráscsoportok listájának megjelenítéséhez.
  2. Keresse meg a törölni kívánt erőforráscsoportot, és kattintson a jobb gombbal a lista jobb oldalán lévő Továbbiak gombra (...).
  3. Válassza az Erőforráscsoport törlése elemet, és erősítse meg a választását.

Figyelmeztetés

Az Apache Kafka-fürt HDInsighton való törlése törli a Kafkában tárolt összes adatot.

Következő lépések