A MirrorMaker használata Apache Kafka-témakörök replikálására a Kafka on HDInsight esetében

Megtudhatja, hogyan replikálhatja a témaköröket egy másodlagos fürtre az Apache Kafka tükrözési funkciójával. A tükrözést folyamatos folyamatként vagy időszakosan futtathatja az adatok egyik fürtről a másikra való migrálásához.

Ebben a cikkben tükrözés használatával replikálja a témaköröket két HDInsight-fürt között. Ezek a fürtök különböző virtuális hálózatokban találhatók különböző adatközpontokban.

Figyelmeztetés

Ne használjon tükrözést eszközként a hibatűrés eléréséhez. A témakör elemeinek eltolása különbözik az elsődleges és a másodlagos fürtök között, így az ügyfelek nem használhatják a kettőt felcserélhetően. Ha a hibatűrés miatt aggódik, állítsa be a fürtön belüli témakörök replikációját. További információ: Ismerkedés az Apache Kafkával a HDInsighton.

Az Apache Kafka-tükrözés működése

A tükrözés az Apache Kafka részét képező MirrorMaker eszközzel működik. A MirrorMaker az elsődleges fürt témaköreiből származó rekordokat használja fel, majd létrehoz egy helyi másolatot a másodlagos fürtön. A MirrorMaker egy (vagy több) felhasználót használ, aki az elsődleges fürtből olvas, és egy gyártót , amely a helyi (másodlagos) fürtbe ír.

A vészhelyreállítás leghatékonyabb tükrözési beállítása kafka-fürtöket használ a különböző Azure-régiókban. Ennek elérése érdekében a fürtöket tároló virtuális hálózatok társviszonyban vannak egymással.

Az alábbi ábra a tükrözési folyamatot és a fürtök közötti kommunikáció áramlását mutatja be:

A tükrözési folyamat ábrája.

Az elsődleges és másodlagos fürtök eltérőek lehetnek a csomópontok és partíciók számában, és a témakörökben lévő eltolások is eltérőek. A tükrözés megőrzi a particionáláshoz használt kulcsértéket, így a rekord sorrendje kulcsonként megmarad.

Tükrözés a hálózati határok között

Ha különböző hálózatokban lévő Kafka-fürtök között kell tükröznie, az alábbi további szempontokat kell figyelembe vennie:

  • Átjárók: A hálózatoknak TCP/IP szinten kell tudniuk kommunikálni.

  • Kiszolgálócímzés: Dönthet úgy, hogy a fürtcsomópontokat ip-címük vagy teljes tartománynevük alapján kezeli.

    • IP-címek: Ha úgy konfigurálja a Kafka-fürtöket, hogy IP-címhirdetést használjon, folytathatja a tükrözés beállítását a közvetítő csomópontok ÉS a ZooKeeper-csomópontok IP-címeivel.

    • Tartománynevek: Ha nem konfigurálja a Kafka-fürtöket IP-címek hirdetéséhez, a fürtöknek teljes tartománynevek (FQDN-k) használatával kell tudniuk csatlakozni egymáshoz. Ehhez minden hálózatban rendelkeznie kell egy DNS-kiszolgálóval, amely úgy van konfigurálva, hogy a kéréseket a többi hálózatnak továbbítsa. Azure-beli virtuális hálózat létrehozásakor a hálózathoz megadott automatikus DNS helyett meg kell adnia egy egyéni DNS-kiszolgálót és a kiszolgáló IP-címét. A virtuális hálózat létrehozása után létre kell hoznia egy Azure-beli virtuális gépet, amely ezt az IP-címet használja. Ezután telepíti és konfigurálja a DNS-szoftvereket.

    Fontos

    A HDInsight virtuális hálózatba való telepítése előtt hozza létre és konfigurálja az egyéni DNS-kiszolgálót. Nincs szükség további konfigurációra a HDInsight számára a virtuális hálózathoz konfigurált DNS-kiszolgáló használatához.

További információ két Azure-beli virtuális hálózat csatlakoztatásáról: Kapcsolat konfigurálása.

Tükrözési architektúra

Ez az architektúra két fürtöt tartalmaz különböző erőforráscsoportokban és virtuális hálózatokban: egy elsődleges és egy másodlagos.

Létrehozási lépések

  1. Hozzon létre két új erőforráscsoportot:

    Erőforráscsoport Hely
    kafka-primary-rg Az USA középső régiója
    kafka-secondary-rg USA északi középső régiója
  2. Hozzon létre egy új kafka-primary-vnet virtuális hálózatot a kafka-primary-rg fájlban. Hagyja meg az alapértelmezett beállításokat.

  3. Hozzon létre egy új kafka-secondary-vnet virtuális hálózatot a kafka-secondary-rg fájlban, szintén az alapértelmezett beállításokkal.

  4. Hozzon létre két új Kafka-fürtöt:

    Fürt neve Erőforráscsoport Virtuális hálózat Tárfiók
    kafka-primary-cluster kafka-primary-rg kafka-primary-vnet kafkaprimarystorage
    kafka-secondary-cluster kafka-secondary-rg kafka-secondary-vnet kafkasecondarystorage
  5. Virtuális hálózati társviszonyok létrehozása. Ez a lépés két társviszonyt hoz létre: egyet a kafka-primary-vnet és a kafka-secondary-vnet között, egyet pedig a kafka-secondary-vnetrőla kafka-primary-vnetre.

    1. Válassza ki a kafka-primary-vnet virtuális hálózatot.

    2. A Beállítások területen válassza a Társviszonyok lehetőséget.

    3. Válassza a Hozzáadás lehetőséget.

    4. A Társviszony hozzáadása képernyőn adja meg a részleteket az alábbi képernyőképen látható módon.

      Képernyőkép a H D Insight Kafka virtuális hálózati társviszony-létesítés hozzáadásáról.

IP-hirdetések konfigurálása

Konfigurálja az IP-hirdetéseket úgy, hogy az ügyfél a tartománynevek helyett közvetítői IP-címekkel csatlakozzon.

  1. Nyissa meg az elsődleges fürt Ambari-irányítópultját: https://PRIMARYCLUSTERNAME.azurehdinsight.net.

  2. Válassza a Szolgáltatások>Kafka lehetőséget. Válassza a Konfigurációk lapot.

  3. Adja hozzá a következő konfigurációs sorokat az alsó kafka-env sablonszakaszhoz . Kattintson a Mentés gombra.

    # Configure Kafka to advertise IP addresses instead of FQDN
    IP_ADDRESS=$(hostname -i)
    echo advertised.listeners=$IP_ADDRESS
    sed -i.bak -e '/advertised/{/advertised@/!d;}' /usr/hdp/current/kafka-broker/conf/server.properties
    echo "advertised.listeners=PLAINTEXT://$IP_ADDRESS:9092" >> /usr/hdp/current/kafka-broker/conf/server.properties
    
  4. Írjon be egy megjegyzést a Konfiguráció mentése képernyőn, és válassza a Mentés lehetőséget.

  5. Ha konfigurációs figyelmeztetést kap, válassza a Folytatás mindenképpen lehetőséget.

  6. A Konfigurációs módosítások mentése területen válassza az OK gombot.

  7. Az Újraindítás szükséges értesítésben válassza aMinden érintett újraindítása lehetőséget>. Ezután válassza az Összes újraindításának megerősítése lehetőséget.

    Képernyőkép az Apache Ambari lehetőségről az összes érintett újraindításához.

A Kafka konfigurálása az összes hálózati adapter figyelésére

  1. Maradjon a Konfigurációk lapon a Services>Kafka alatt. A Kafka Broker szakaszban állítsa a figyelők tulajdonságot a értékre PLAINTEXT://0.0.0.0:9092.
  2. Kattintson a Mentés gombra.
  3. Válassza az Újraindítás újraindítása>Az összes újraindításának megerősítése lehetőséget.

Rekordközvetítő IP-címei és ZooKeeper-címei az elsődleges fürthöz

  1. Válassza a Gazdagépek lehetőséget az Ambari irányítópultján.

  2. Jegyezze fel a közvetítők és a ZooKeepers IP-címeit. A közvetítőcsomópontok a gazdagép nevének első két betűjeként, a ZooKeeper csomópontok pedig a gazdanév első két betűjeként zk betűvel rendelkeznek.

    Képernyőkép az Apache Ambari-csomópont i p címeinek megtekintéséről.

  3. Ismételje meg az előző három lépést a második fürthöz, a kafka-secondary-clusterhez: konfigurálja az IP-hirdetéseket, állítsa be a figyelőket, és jegyezze fel a közvetítőt és a ZooKeeper IP-címeit.

Témakörök létrehozása

  1. Csatlakozzon az elsődleges fürthöz az SSH használatával:

    ssh sshuser@PRIMARYCLUSTER-ssh.azurehdinsight.net
    

    Cserélje le a elemet sshuser a fürt létrehozásakor használt SSH-felhasználónévre. Cserélje le PRIMARYCLUSTER a elemet a fürt létrehozásakor használt alapnévre.

    További információ: SSH használata HDInsighttal.

  2. Az alábbi paranccsal két környezeti változót hozhat létre az Elsődleges fürt Apache ZooKeeper-gazdagépeivel és közvetítő gazdagépeivel. Cserélje le az olyan sztringeket, mint ZOOKEEPER_IP_ADDRESS1 a korábban rögzített tényleges IP-címek, például 10.23.0.11 a és 10.23.0.7a. Ugyanez vonatkozik a következőre: BROKER_IP_ADDRESS1. Ha az FQDN-feloldás egyéni DNS-kiszolgálóval van használatban, kövesse az alábbi lépéseket a közvetítő és a ZooKeeper-nevek lekéréséhez.

    # get the ZooKeeper hosts for the primary cluster
    export PRIMARY_ZKHOSTS='ZOOKEEPER_IP_ADDRESS1:2181, ZOOKEEPER_IP_ADDRESS2:2181, ZOOKEEPER_IP_ADDRESS3:2181'
    
    # get the broker hosts for the primary cluster
    export PRIMARY_BROKERHOSTS='BROKER_IP_ADDRESS1:9092,BROKER_IP_ADDRESS2:9092,BROKER_IP_ADDRESS2:9092'
    
  3. A nevű testtopictémakör létrehozásához használja a következő parancsot:

    /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --create --replication-factor 2 --partitions 8 --topic testtopic --zookeeper $PRIMARY_ZKHOSTS
    
  4. A témakör létrehozásának ellenőrzéséhez használja az alábbi parancsot:

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

    A válasz tartalmazza a következőt: testtopic.

  5. Az alábbi módon tekintheti meg a (elsődleges) fürt közvetítő gazdagépadatait:

    echo $PRIMARY_BROKERHOSTS
    

    Ez a következő szöveghez hasonló információkat ad vissza:

    10.23.0.11:9092,10.23.0.7:9092,10.23.0.9:9092

    Mentse ezeket az adatokat. Ezt a következő szakaszban használjuk.

Tükrözés konfigurálása

  1. Csatlakozzon a másodlagos fürthöz egy másik SSH-munkamenet használatával:

    ssh sshuser@SECONDARYCLUSTER-ssh.azurehdinsight.net
    

    Cserélje le a elemet sshuser a fürt létrehozásakor használt SSH-felhasználónévre. Cserélje le SECONDARYCLUSTER a elemet a fürt létrehozásakor használt névre.

    További információ: SSH használata HDInsighttal.

  2. consumer.properties Fájl használatával konfigurálja az elsődleges fürttel folytatott kommunikációt. A fájl létrehozásához használja a következő parancsot:

    nano consumer.properties
    

    A fájl tartalmaként használja a consumer.properties következő szöveget:

    bootstrap.servers=PRIMARY_BROKERHOSTS
    group.id=mirrorgroup
    

    Cserélje le PRIMARY_BROKERHOSTS a elemet az elsődleges fürt közvetítő gazdagépének IP-címére.

    Ez a fájl az elsődleges Kafka-fürtből való olvasáskor használandó fogyasztói adatokat ismerteti. További információ: Fogyasztói konfigurációk itt kafka.apache.org: .

    A fájl mentéséhez nyomja le a Ctrl+X billentyűkombinációt, nyomja le az Y billentyűt, majd nyomja le az Enter billentyűt.

  3. Mielőtt konfigurálná a másodlagos fürttel kommunikáló gyártót, állítson be egy változót a másodlagos fürt közvetítő IP-címéhez. A változó létrehozásához használja az alábbi parancsokat:

    export SECONDARY_BROKERHOSTS='BROKER_IP_ADDRESS1:9092,BROKER_IP_ADDRESS2:9092,BROKER_IP_ADDRESS2:9092'
    

    A parancsnak echo $SECONDARY_BROKERHOSTS az alábbi szöveghez hasonló információkat kell visszaadnia:

    10.23.0.14:9092,10.23.0.4:9092,10.23.0.12:9092

  4. Használjon egy producer.properties fájlt a másodlagos fürt kommunikációjára. A fájl létrehozásához használja a következő parancsot:

    nano producer.properties
    

    A fájl tartalmaként használja a producer.properties következő szöveget:

    bootstrap.servers=SECONDARY_BROKERHOSTS
    compression.type=none
    

    Cserélje le a elemet SECONDARY_BROKERHOSTS az előző lépésben használt közvetítői IP-címekre.

    További információ: Producer Configs at kafka.apache.org.

  5. A következő parancsokkal hozzon létre egy környezeti változót a zooKeeper-gazdagépek IP-címeivel a másodlagos fürthöz:

    # get the ZooKeeper hosts for the secondary cluster
    export SECONDARY_ZKHOSTS='ZOOKEEPER_IP_ADDRESS1:2181,ZOOKEEPER_IP_ADDRESS2:2181,ZOOKEEPER_IP_ADDRESS3:2181'
    
  6. A HDInsight-alapú Kafka alapértelmezett konfigurációja nem teszi lehetővé a témakörök automatikus létrehozását. A tükrözési folyamat megkezdése előtt az alábbi lehetőségek egyikét kell használnia:

    • Hozza létre a témaköröket a másodlagos fürtön: Ezzel a beállítással a partíciók számát és a replikációs tényezőt is beállíthatja.

      A témaköröket az alábbi paranccsal hozhatja létre előre:

      /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --create --replication-factor 2 --partitions 8 --topic testtopic --zookeeper $SECONDARY_ZKHOSTS
      

      Cserélje le testtopic a elemet a létrehozandó témakör nevére.

    • Konfigurálja a fürtöt az automatikus témakörlétrehozáshoz: Ezzel a beállítással a MirrorMaker automatikusan létrehozhat témaköröket. Vegye figyelembe, hogy azokat az elsődleges témakörhöz képest eltérő számú partícióval vagy más replikációs tényezővel hozhatja létre.

      Ha a másodlagos fürtöt úgy szeretné konfigurálni, hogy automatikusan hozzon létre témaköröket, hajtsa végre az alábbi lépéseket:

      1. Nyissa meg a másodlagos fürt Ambari-irányítópultját: https://SECONDARYCLUSTERNAME.azurehdinsight.net.
      2. Válassza a Szolgáltatások>Kafka lehetőséget. Ezután válassza a Konfigurációk lapot.
      3. A Szűrő mezőben adjon meg egy értéket.auto.create Ez szűri a tulajdonságok listáját, és megjeleníti a auto.create.topics.enable beállítást.
      4. Módosítsa a értékét a értékre auto.create.topics.enabletrue, majd válassza a Mentés lehetőséget. Vegyen fel egy megjegyzést, majd válassza ismét a Mentés lehetőséget.
      5. Válassza a Kafka szolgáltatást, válassza az Újraindítás, majd az Összes érintett újraindítása lehetőséget. Amikor a rendszer kéri, válassza az Összes újraindításának megerősítése lehetőséget.

      Képernyőkép, amely bemutatja, hogyan engedélyezheti az automatikus létrehozási témaköröket a kafka szolgáltatásban.

A MirrorMaker indítása

Megjegyzés

Ez a cikk a Microsoft által már nem használt kifejezésre mutató hivatkozásokat tartalmaz. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.

  1. A másodlagos fürthöz való SSH-kapcsolatból a következő paranccsal indítsa el a MirrorMaker-folyamatot:

    /usr/hdp/current/kafka-broker/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config consumer.properties --producer.config producer.properties --whitelist testtopic --num.streams 4
    

    A példában használt paraméterek a következők:

    Paraméter Leírás
    --consumer.config Meghatározza a fogyasztói tulajdonságokat tartalmazó fájlt. Ezekkel a tulajdonságokkal olyan fogyasztót hozhat létre, amely az elsődleges Kafka-fürtből olvas.
    --producer.config Meghatározza az előállítói tulajdonságokat tartalmazó fájlt. Ezekkel a tulajdonságokkal hozhat létre egy gyártót, amely a másodlagos Kafka-fürtbe ír.
    --whitelist A MirrorMaker által az elsődleges fürtről a másodlagosra replikált témakörök listája.
    --num.streams A létrehozandó fogyasztói szálak száma.

    A másodlagos csomóponton lévő fogyasztó most arra vár, hogy üzeneteket fogadjon.

  2. Az elsődleges fürthöz való SSH-kapcsolatból az alábbi paranccsal indítsa el a gyártót, és küldjön üzeneteket a témakörnek:

    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list $PRIMARY_BROKERHOSTS --topic testtopic
    

    Amikor egy kurzorral ellátott üres sorba érkezik, írjon be néhány szöveges üzenetet. A rendszer elküldi az üzeneteket az elsődleges fürt témakörének. Ha elkészült, a Ctrl+C billentyűkombinációval fejezhesse be az előállítói folyamatot.

  3. A Másodlagos fürthöz való SSH-kapcsolatról a Ctrl+C billentyűkombinációt lenyomva fejezhesse be a MirrorMaker-folyamatot. A folyamat befejezése több másodpercet is igénybe vehet. Annak ellenőrzéséhez, hogy az üzenetek replikálva lettek-e a másodlagosra, használja a következő parancsot:

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

    A témakörök listája mostantól tartalmazza a testtopictémakört, amely akkor jön létre, amikor a MirrorMaster az elsődleges fürtről a másodlagosra tükrözi a témakört. A témakörből lekért üzenetek megegyeznek az elsődleges fürtön megadott üzenetekkel.

A fürt törlése

Figyelmeztetés

A HDInsight-fürtök számlázása percenként történik, függetlenül attól, hogy használja-e őket. A használat befejezése után mindenképpen törölje a fürtöt. Tekintse meg , hogyan törölhet HDInsight-fürtöt.

A cikkben ismertetett lépések különböző Azure-erőforráscsoportokban hoztak létre fürtöket. Az összes létrehozott erőforrás törléséhez törölheti a létrehozott két erőforráscsoportot: kafka-primary-rg és kafka-secondary-rg. Az erőforráscsoportok törlése eltávolítja a cikk alapján létrehozott összes erőforrást, beleértve a fürtöket, a virtuális hálózatokat és a tárfiókokat.

Következő lépések

Ebben a cikkben megtanulhatta, hogyan hozhat létre egy Apache Kafka-fürt replikáját a MirrorMaker használatával. Az alábbi hivatkozásokon megismerheti a Kafkával való munkavégzés egyéb módjait: