Verwenden von MirrorMaker zum Replizieren von Apache Kafka-Themen mit Kafka in HDInsightUse MirrorMaker to replicate Apache Kafka topics with Kafka on HDInsight

Erfahren Sie, wie Sie die Spiegelungsfunktion von Apache Kafka verwenden, um Themen in einen sekundären Cluster zu replizieren.Learn how to use Apache Kafka's mirroring feature to replicate topics to a secondary cluster. Die Spiegelung kann als fortlaufender Prozess ausgeführt oder zu bestimmten Zeitpunkten als Methode zum Migrieren von Daten aus einem Cluster in einen anderen verwendet werden.Mirroring can be ran as a continuous process, or used intermittently as a method of migrating data from one cluster to another.

In diesem Beispiel wird das Spiegelung zum Replizieren von Themen zwischen zwei HDInsight-Clustern verwendet.In this example, mirroring is used to replicate topics between two HDInsight clusters. Beide Cluster befinden sich in einem virtuellen Azure-Netzwerk in der gleichen Region.Both clusters are in an Azure Virtual Network in the same region.

Warnung

Die Spiegelung sollte nicht als Mittel zum Erzielen von Fehlertoleranz angesehen werden.Mirroring should not be considered as a means to achieve fault-tolerance. Der Versatz von Elementen in einem Thema unterscheidet sich für Quell- und Zielcluster, sodass diese für Clients nicht austauschbar sind.The offset to items within a topic are different between the source and destination clusters, so clients cannot use the two interchangeably.

Falls Sie Bedenken wegen der Fehlertoleranz haben, sollten Sie die Replikation für die Themen in Ihrem Cluster festlegen.If you are concerned about fault tolerance, you should set replication for the topics within your cluster. Weitere Informationen finden Sie unter Schnellstart: Erstellen eines Apache Kafka-Clusters in HDInsight.For more information, see Get started with Apache Kafka on HDInsight.

Funktionsweise der Apache Kafka-SpiegelungHow Apache Kafka mirroring works

Für die Spiegelung wird das Tool MirrorMaker (Teil von Apache Kafka) verwendet, um Datensätze aus Themen im Quellcluster zu nutzen und anschließend eine lokale Kopie im Zielcluster zu erstellen.Mirroring works by using the MirrorMaker tool (part of Apache Kafka) to consume records from topics on the source cluster and then create a local copy on the destination cluster. MirrorMaker nutzt einen (oder mehrere) Consumer, mit denen aus dem Quellcluster gelesen wird, und einen Producer, der in den lokalen Cluster (Zielcluster) schreibt.MirrorMaker uses one (or more) consumers that read from the source cluster, and a producer that writes to the local (destination) cluster.

Im folgenden Diagramm ist der Spiegelungsprozess dargestellt:The following diagram illustrates the Mirroring process:

Diagramm des Spiegelungsprozesses

Apache Kafka in HDInsight ermöglicht keinen Zugriff auf den Kafka-Dienst über das öffentliche Internet.Apache Kafka on HDInsight does not provide access to the Kafka service over the public internet. Kafka-Producers oder -Consumer müssen sich jeweils in demselben virtuellen Azure-Netzwerk wie die Knoten im Kafka-Cluster befinden.Kafka producers or consumers must be in the same Azure virtual network as the nodes in the Kafka cluster. Für dieses Beispiel sind die Kafka-Quell- und -Zielcluster in einem virtuellen Azure-Netzwerk angeordnet.For this example, both the Kafka source and destination clusters are located in an Azure virtual network. Im folgenden Diagramm ist dargestellt, wie der Kommunikationsfluss zwischen den Clustern abläuft:The following diagram shows how communication flows between the clusters:

Diagramm mit Kafka-Quell- und -Zielclustern in einem virtuellen Azure-Netzwerk

Die Quell- und Zielcluster können sich in Bezug auf die Anzahl von Knoten und Partitionen unterscheiden, und auch der Versatz in den Themen ist unterschiedlich.The source and destination clusters can be different in the number of nodes and partitions, and offsets within the topics are different also. Beim Spiegeln wird der Schlüsselwert beibehalten, der für die Partitionierung verwendet wird, sodass die Datensatzreihenfolge pro Schlüssel beibehalten wird.Mirroring maintains the key value that is used for partitioning, so record order is preserved on a per-key basis.

Spiegelung über Netzwerkgrenzen hinwegMirroring across network boundaries

Wenn Sie eine Spiegelung zwischen Kafka-Clustern in unterschiedlichen Netzwerken durchführen müssen, sollten Sie außerdem Folgendes beachten:If you need to mirror between Kafka clusters in different networks, there are the following additional considerations:

  • Gateways: Die Netzwerke müssen auf TCP/IP-Ebene kommunizieren können.Gateways: The networks must be able to communicate at the TCPIP level.

  • Namensauflösung: Die Kafka-Cluster in jedem Netzwerk müssen per Hostname eine Verbindung miteinander herstellen können.Name resolution: The Kafka clusters in each network must be able to connect to each other by using hostnames. Hierfür ist unter Umständen ein DNS-Server (Domain Name System) in jedem Netzwerk erforderlich, der dafür konfiguriert ist, Anforderungen an die anderen Netzwerke weiterzuleiten.This may require a Domain Name System (DNS) server in each network that is configured to forward requests to the other networks.

    Beim Erstellen eines virtuellen Azure-Netzwerks müssen Sie einen benutzerdefinierten DNS-Server und die IP-Adresse für den Server angeben, anstatt das automatisch bereitgestellte DNS des Netzwerks zu verwenden.When creating an Azure Virtual Network, instead of using the automatic DNS provided with the network, you must specify a custom DNS server and the IP address for the server. Nach der Erstellung des virtuellen Netzwerks müssen Sie dann einen virtuellen Azure-Computer erstellen, für den diese IP-Adresse verwendet wird, und anschließend die DNS-Software darauf installieren und konfigurieren.After the Virtual Network has been created, you must then create an Azure Virtual Machine that uses that IP address, then install and configure DNS software on it.

    Warnung

    Erstellen und konfigurieren Sie den benutzerdefinierten DNS-Server, bevor Sie HDInsight im virtuellen Netzwerk installieren.Create and configure the custom DNS server before installing HDInsight into the Virtual Network. Es ist keine zusätzliche Konfiguration erforderlich, damit HDInsight den für das virtuelle Netzwerk konfigurierten DNS-Server verwenden kann.There is no additional configuration required for HDInsight to use the DNS server configured for the Virtual Network.

Weitere Informationen zum Verbinden von zwei virtuellen Azure-Netzwerken finden Sie unter Konfigurieren einer VNet-zu-VNet-Verbindung.For more information on connecting two Azure Virtual Networks, see Configure a VNet-to-VNet connection.

Erstellen von Apache Kafka-ClusternCreate Apache Kafka clusters

Es ist zwar möglich, ein virtuelles Azure-Netzwerk und Kafka-Cluster manuell zu erstellen, aber mit einer Azure Resource Manager-Vorlage ist dies erheblich einfacher.While you can create an Azure virtual network and Kafka clusters manually, it's easier to use an Azure Resource Manager template. Führen Sie die folgenden Schritte aus, um ein virtuelles Azure-Netzwerk und zwei Kafka-Cluster für Ihr Azure-Abonnement bereitzustellen.Use the following steps to deploy an Azure virtual network and two Kafka clusters to your Azure subscription.

  1. Verwenden Sie die folgende Schaltfläche, um sich bei Azure anzumelden, und öffnen Sie die Vorlage im Azure-Portal.Use the following button to sign in to Azure and open the template in the Azure portal.

    Deploy to Azure

    Die Azure Resource Manager-Vorlage finden Sie unter https://hditutorialdata.blob.core.windows.net/armtemplates/create-linux-based-kafka-mirror-cluster-in-vnet-v2.1.json .The Azure Resource Manager template is located at https://hditutorialdata.blob.core.windows.net/armtemplates/create-linux-based-kafka-mirror-cluster-in-vnet-v2.1.json.

    Warnung

    Um die Verfügbarkeit von Kafka in HDInsight zu gewährleisten, muss der Cluster mindestens drei Workerknoten enthalten.To guarantee availability of Kafka on HDInsight, your cluster must contain at least three worker nodes. Diese Vorlage erstellt einen Kafka-Cluster, der drei Workerknoten enthält.This template creates a Kafka cluster that contains three worker nodes.

  2. Verwenden Sie die folgenden Informationen, um die Einträge auf dem Blatt Benutzerdefinierte Bereitstellung aufzufüllen:Use the following information to populate the entries on the Custom deployment blade:

    Benutzerdefinierte HDInsight-Bereitstellung

    • Ressourcengruppe: Erstellen Sie eine Gruppe, oder wählen Sie eine vorhandene Gruppe aus.Resource group: Create a group or select an existing one. Diese Gruppe enthält den HDInsight-Cluster.This group contains the HDInsight cluster.

    • Standort: Wählen Sie einen Standort in Ihrer Nähe aus.Location: Select a location geographically close to you.

    • Basisclustername: Dieser Wert wird als Basisname für den Kafka-Cluster verwendet.Base Cluster Name: This value is used as the base name for the Kafka clusters. Beispiel: Mit der Eingabe von hdi werden Cluster mit den Namen source-hdi und dest-hdi erstellt.For example, entering hdi creates clusters named source-hdi and dest-hdi.

    • Benutzername für Clusteranmeldung: Der Administratorbenutzername für die Kafka-Quell- und -Zielcluster.Cluster Login User Name: The admin user name for the source and destination Kafka clusters.

    • Kennwort für Clusteranmeldung: Das Administratorbenutzerkennwort für die Kafka-Quell- und -Zielcluster.Cluster Login Password: The admin user password for the source and destination Kafka clusters.

    • SSH-Benutzername: Der SSH-Benutzer, der für die Kafka-Quell- und -Zielcluster erstellt werden soll.SSH User Name: The SSH user to create for the source and destination Kafka clusters.

    • SSH-Kennwort: Das Kennwort für den SSH-Benutzer für die Kafka-Quell- und -Zielcluster.SSH Password: The password for the SSH user for the source and destination Kafka clusters.

  3. Lesen Sie die Geschäftsbedingungen, und wählen Sie anschließend die Option Ich stimme den oben genannten Geschäftsbedingungen zu.Read the Terms and Conditions, and then select I agree to the terms and conditions stated above.

  4. Aktivieren Sie zum Schluss An Dashboard anheften, und wählen Sie dann Kaufen aus.Finally, check Pin to dashboard and then select Purchase. Das Erstellen der Cluster dauert ca. 20 Minuten.It takes about 20 minutes to create the clusters.

Wichtig

Die Namen der HDInsight-Cluster lauten source-BASENAME und dest-BASENAME, wobei BASENAME der Name ist, den Sie für die Vorlage angegeben haben.The name of the HDInsight clusters are source-BASENAME and dest-BASENAME, where BASENAME is the name you provided to the template. Sie verwenden diese Namen in späteren Schritten, wenn Sie eine Verbindung mit den Clustern herstellen.You use these names in later steps when connecting to the clusters.

Erstellen von ThemenCreate topics

  1. Stellen Sie mithilfe von SSH eine Verbindung mit dem Quellcluster her:Connect to the source cluster using SSH:

    ssh sshuser@source-BASENAME-ssh.azurehdinsight.net
    

    Ersetzen Sie sshuser durch den SSH-Benutzernamen, den Sie beim Erstellen des Clusters verwendet haben.Replace sshuser with the SSH user name used when creating the cluster. Ersetzen Sie BASENAME durch den Basisnamen, der beim Erstellen des Clusters verwendet wurde.Replace BASENAME with the base name used when creating the cluster.

    Informationen hierzu finden Sie unter Verwenden von SSH mit Linux-basiertem Hadoop in HDInsight unter Linux, Unix oder OS X.For information, see Use SSH with HDInsight.

  2. Verwenden Sie die folgenden Befehle, um nach den Apache Zookeeper-Hosts für den Quellcluster zu suchen:Use the following commands to find the Apache Zookeeper hosts for the source cluster:

    # Install jq if it is not installed
    sudo apt -y install jq
    # get the zookeeper hosts for the source cluster
    export SOURCE_ZKHOSTS=`curl -sS -u admin -G https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER | jq -r '["\(.host_components[].HostRoles.host_name):2181"] | join(",")' | cut -d',' -f1,2`
    

    Ersetzen Sie $CLUSTERNAME durch den Namen des Quellclusters.Replace $CLUSTERNAME with the name of the source cluster. Geben Sie bei der entsprechenden Aufforderung das Kennwort des Anmeldekontos (Administrator) für den Cluster ein.When prompted, enter the password for the cluster login (admin) account.

  3. Um ein Thema mit Namen testtopic zu erstellen, nutzen Sie den folgenden Befehl:To create a topic named testtopic, use the following command:

    /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --create --replication-factor 2 --partitions 8 --topic testtopic --zookeeper $SOURCE_ZKHOSTS
    
  4. Verwenden Sie den folgenden Befehl, um zu bestätigen, dass das Thema erstellt wurde:Use the following command to verify that the topic was created:

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

    Die Antwort enthält testtopic.The response contains testtopic.

  5. Verwenden Sie Folgendes, um die Informationen zum Zookeeper-Host für diesen Cluster (Quellcluster) anzuzeigen:Use the following to view the Zookeeper host information for this (the source) cluster:

    echo $SOURCE_ZKHOSTS
    

    Die Ausgabe sieht in etwa wie folgt aus:This returns information similar to the following text:

    zk0-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:2181,zk1-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:2181

    Speichern Sie diese Informationen.Save this information. Sie werden im nächsten Abschnitt verwendet.It is used in the next section.

Konfigurieren der SpiegelungConfigure mirroring

  1. Stellen Sie in einer anderen SSH-Sitzung eine Verbindung mit dem Zielcluster her:Connect to the destination cluster using a different SSH session:

    ssh sshuser@dest-BASENAME-ssh.azurehdinsight.net
    

    Ersetzen Sie sshuser durch den SSH-Benutzernamen, den Sie beim Erstellen des Clusters verwendet haben.Replace sshuser with the SSH user name used when creating the cluster. Ersetzen Sie BASENAME durch den Basisnamen, der beim Erstellen des Clusters verwendet wurde.Replace BASENAME with the base name used when creating the cluster.

    Informationen hierzu finden Sie unter Verwenden von SSH mit Linux-basiertem Hadoop in HDInsight unter Linux, Unix oder OS X.For information, see Use SSH with HDInsight.

  2. Mit einer consumer.properties-Datei wird die Kommunikation mit dem Quellcluster konfiguriert.A consumer.properties file is used to configure communication with the source cluster. Verwenden Sie zum Erstellen der Datei den folgenden Befehl:To create the file, use the following command:

    nano consumer.properties
    

    Verwenden Sie als Inhalt der Datei consumer.properties den folgenden Text:Use the following text as the contents of the consumer.properties file:

    zookeeper.connect=SOURCE_ZKHOSTS
    group.id=mirrorgroup
    

    Ersetzen Sie SOURCE_ZKHOSTS durch die Informationen zu Zookeeper-Hosts aus dem Quellcluster.Replace SOURCE_ZKHOSTS with the Zookeeper hosts information from the source cluster.

    In dieser Datei werden die Consumerinformationen beschrieben, die beim Lesen vom Kafka-Quellcluster verwendet werden sollten.This file describes the consumer information to use when reading from the source Kafka cluster. Weitere Informationen zur Consumerkonfiguration finden Sie unter Consumer Configs (Consumerkonfigurationen) bei „kafka.apache.org“.For more information consumer configuration, see Consumer Configs at kafka.apache.org.

    Drücken Sie zum Speichern der Datei STRG+X, Y und dann die EINGABETASTE.To save the file, use Ctrl + X, Y, and then Enter.

  3. Bevor Sie den Producer konfigurieren, der mit dem Zielcluster kommuniziert, müssen Sie nach den Brokerhosts für den Zielcluster suchen.Before configuring the producer that communicates with the destination cluster, you must find the broker hosts for the destination cluster. Verwenden Sie die folgenden Befehle, um diese Informationen abzurufen:Use the following commands to retrieve this information:

    sudo apt -y install jq
    DEST_BROKERHOSTS=`curl -sS -u admin -G https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/KAFKA/components/KAFKA_BROKER | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2`
    echo $DEST_BROKERHOSTS
    

    Ersetzen Sie $CLUSTERNAME durch den Namen des Zielclusters.Replace $CLUSTERNAME with the name of the destination cluster. Geben Sie bei der entsprechenden Aufforderung das Kennwort des Anmeldekontos (Administrator) für den Cluster ein.When prompted, enter the password for the cluster login (admin) account.

    Die Ausgabe des echo-Befehls sieht in etwa wie folgt aus:The echo command returns information similar to the following text:

     wn0-dest.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092,wn1-dest.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092
    
  4. Eine producer.properties-Datei kommuniziert den __Ziel__cluster.A producer.properties file is used to communicate the destination cluster. Verwenden Sie zum Erstellen der Datei den folgenden Befehl:To create the file, use the following command:

    nano producer.properties
    

    Verwenden Sie als Inhalt der Datei producer.properties den folgenden Text:Use the following text as the contents of the producer.properties file:

    bootstrap.servers=DEST_BROKERS
    compression.type=none
    

    Ersetzen Sie DEST_BROKERS durch die Brokerinformationen aus dem vorherigen Schritt.Replace DEST_BROKERS with the broker information from the previous step.

    Weitere Informationen zur Producerkonfiguration finden Sie unter Producer Configs (Producerkonfigurationen) bei „kafka.apache.org“.For more information producer configuration, see Producer Configs at kafka.apache.org.

  5. Verwenden Sie die folgenden Befehle, um nach den Zookeeper-Hosts für den Zielcluster zu suchen:Use the following commands to find the Zookeeper hosts for the destination cluster:

    # Install jq if it is not installed
    sudo apt -y install jq
    # get the zookeeper hosts for the source cluster
    export DEST_ZKHOSTS=`curl -sS -u admin -G https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER | jq -r '["\(.host_components[].HostRoles.host_name):2181"] | join(",")' | cut -d',' -f1,2`
    

    Ersetzen Sie $CLUSTERNAME durch den Namen des Zielclusters.Replace $CLUSTERNAME with the name of the destination cluster. Geben Sie bei der entsprechenden Aufforderung das Kennwort des Anmeldekontos (Administrator) für den Cluster ein.When prompted, enter the password for the cluster login (admin) account.

  6. Die Standardkonfiguration für Kafka auf HDInsight erlaubt keine automatische Erstellung von Themen.The default configuration for Kafka on HDInsight does not allow the automatic creation of topics. Bevor Sie mit der Spiegelung beginnen, müssen Sie sich für eine der folgenden Optionen entscheiden:You must use one of the following options before starting the Mirroring process:

    • Erstellen der Themen im Zielcluster: Bei dieser Option haben Sie auch die Möglichkeit, die Anzahl von Partitionen und den Replikationsfaktor festzulegen.Create the topics on the destination cluster: This option also allows you to set the number of partitions and the replication factor.

      Mit folgendem Befehl können Sie Themen vorab erstellen:You can create topics ahead of time by using the following command:

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

      Ersetzen Sie testtopic durch den Namen des zu erstellenden Themas.Replace testtopic with the name of the topic to create.

    • Konfigurieren des Clusters für die automatische Themaerstellung: Bei dieser Option kann MirrorMaker zum automatischen Erstellen von Themen verwendet werden. Die Themen werden jedoch möglicherweise mit einer unterschiedlichen Anzahl von Partitionen bzw. einem anderen Replikationsfaktor als im Quellthema erstellt.Configure the cluster for automatic topic creation: This option allows MirrorMaker to automatically create topics, however it may create them with a different number of partitions or replication factor than the source topic.

      Um den Zielcluster für das automatische Erstellen von Themen zu konfigurieren, führen Sie diese Schritte aus:To configure the destination cluster to automatically create topics, perform these steps:

      1. Wählen Sie im Azure-Portal den Kafka-Zielcluster aus.From the Azure portal, select the destination Kafka cluster.
      2. Wählen Sie in der Clusterübersicht die Option Clusterdashboard.From the cluster overview, select Cluster dashboard. Wählen Sie dann HDInsight-Clusterdashboard.Then select HDInsight cluster dashboard. Bei Aufforderung authentifizieren Sie sich mit den Anmeldeinformationen (Admin) für den Cluster.When prompted, authenticate using the login (admin) credentials for the cluster.
      3. Wählen Sie auf der linken Seite aus der Liste den Dienst Kafka aus.Select the Kafka service from the list on the left of the page.
      4. Klicken Sie in der Mitte der Seite auf Konfigurationen.Select Configs in the middle of the page.
      5. Geben Sie in das Feld Filter den Wert auto.create ein.In the Filter field, enter a value of auto.create. Dies filtert die Liste der Eigenschaften und zeigt die Einstellung auto.create.topics.enable.This filters the list of properties and displays the auto.create.topics.enable setting.
      6. Ändern Sie den Wert von auto.create.topics.enable in „true“, und wählen Sie dann Speichern.Change the value of auto.create.topics.enable to true, and then select Save. Fügen Sie einen Hinweis hinzu, und wählen Sie dann erneut Speichern.Add a note, and then select Save again.
      7. Wählen Sie den Dienst Kafka, dann die Option Neu starten und abschließend die Option Neustart aller betroffenen.Select the Kafka service, select Restart, and then select Restart all affected. Klicken Sie bei entsprechender Aufforderung auf Neustart aller Dienste bestätigen.When prompted, select Confirm restart all.

Starten von MirrorMakerStart MirrorMaker

  1. Verwenden Sie für den Weg von der SSH-Verbindung zum Zielcluster den folgenden Befehl, um den MirrorMaker-Prozess zu starten:From the SSH connection to the destination cluster, use the following command to start the MirrorMaker process:

    /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
    

    Die in diesem Beispiel verwendeten Parameter sind:The parameters used in this example are:

    • --consumer.config: Gibt die Datei an, in der die Consumereigenschaften enthalten sind.--consumer.config: Specifies the file that contains consumer properties. Diese Eigenschaften werden verwendet, um einen Consumer zu erstellen, mit dem aus dem Kafka-Quellcluster gelesen wird.These properties are used to create a consumer that reads from the source Kafka cluster.

    • --producer.config: Gibt die Datei an, in der die Producereigenschaften enthalten sind.--producer.config: Specifies the file that contains producer properties. Diese Eigenschaften werden zum Erstellen eines Producers verwendet, mit dem in den Kafka-Zielcluster geschrieben wird.These properties are used to create a producer that writes to the destination Kafka cluster.

    • --whitelist: Eine Liste mit Themen, die von MirrorMaker aus dem Quellcluster am Zielort repliziert werden.--whitelist: A list of topics that MirrorMaker replicates from the source cluster to the destination.

    • --num.streams: Die Anzahl von Consumerthreads, die erstellt werden sollen.--num.streams: The number of consumer threads to create.

    Nach dem Starten gibt MirrorMaker Informationen zurück, die dem folgenden Text ähneln:On startup, MirrorMaker returns information similar to the following text:

    {metadata.broker.list=wn1-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092,wn0-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092, request.timeout.ms=30000, client.id=mirror-group-3, security.protocol=PLAINTEXT}{metadata.broker.list=wn1-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092,wn0-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092, request.timeout.ms=30000, client.id=mirror-group-0, security.protocol=PLAINTEXT}
    metadata.broker.list=wn1-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092,wn0-kafka.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092, request.timeout.ms=30000, client.id=mirror-group-2, security.protocol=PLAINTEXT}
    metadata.broker.list=wn1-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092,wn0-source.aazwc2onlofevkbof0cuixrp5h.gx.internal.cloudapp.net:9092, request.timeout.ms=30000, client.id=mirror-group-1, security.protocol=PLAINTEXT}
    
  2. Verwenden Sie für den Weg von der SSH-Verbindung zum Quellcluster den folgenden Befehl, um einen Producer zu starten und Nachrichten an das Thema zu senden:From the SSH connection to the source cluster, use the following command to start a producer and send messages to the topic:

    SOURCE_BROKERHOSTS=`curl -sS -u admin -G https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/KAFKA/components/KAFKA_BROKER | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2`
    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list $SOURCE_BROKERHOSTS --topic testtopic
    

    Ersetzen Sie $CLUSTERNAME durch den Namen des Quellclusters.Replace $CLUSTERNAME with the name of the source cluster. Geben Sie bei der entsprechenden Aufforderung das Kennwort des Anmeldekontos (Administrator) für den Cluster ein.When prompted, enter the password for the cluster login (admin) account.

    Sobald der Cursor an einer leeren Zeile steht, geben Sie einige Textnachrichten ein.When you arrive at a blank line with a cursor, type in a few text messages. Diese Nachrichten werden an das Thema im Quellcluster gesendet.The messages are sent to the topic on the source cluster. Drücken Sie anschließend STRG + C, um den Producer-Prozess zu beenden.When done, use Ctrl + C to end the producer process.

  3. Drücken Sie für die SSH-Verbindung zum Zielcluster STRG + C, um den MirrorMaker-Prozess zu beenden.From the SSH connection to the destination cluster, use Ctrl + C to end the MirrorMaker process. Es kann einige Sekunden in Anspruch nehmen, um den Prozess zu beenden.It may take several seconds to end the process. Um sicherzustellen, dass die Nachrichten am Ziel repliziert wurden, verwenden Sie den folgenden Befehl:To verify that the messages were replicated to the destination, use the following command:

    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --zookeeper $DEST_ZKHOSTS --topic testtopic --from-beginning
    

    Ersetzen Sie $CLUSTERNAME durch den Namen des Zielclusters.Replace $CLUSTERNAME with the name of the destination cluster. Geben Sie bei der entsprechenden Aufforderung das Kennwort des Anmeldekontos (Administrator) für den Cluster ein.When prompted, enter the password for the cluster login (admin) account.

    Die Themenliste enthält nun auch das Thema testtopic, das erstellt wurde, als MirrorMaster das Thema vom Quellcluster an das Ziel gespiegelt hat.The list of topics now includes testtopic, which is created when MirrorMaster mirrors the topic from the source cluster to the destination. Die aus dem Thema abgerufenen Nachrichten sind identisch mit den im Quellcluster eingegebenen Nachrichten.The messages retrieved from the topic are the same as entered on the source cluster.

Löschen des ClustersDelete the cluster

Warnung

Die Abrechnung für die HDInsight-Cluster erfolgt anteilsmäßig auf Minutenbasis und ist unabhängig von der Verwendung.Billing for HDInsight clusters is prorated per minute, whether you use them or not. Daher sollten Sie Ihren Cluster nach der Verwendung unbedingt wieder löschen.Be sure to delete your cluster after you finish using it. Sehen Sie sich die Informationen zum Löschen eines HDInsight-Clusters an.See how to delete an HDInsight cluster.

Da mit den Schritten in diesem Dokument beide Cluster in derselben Azure-Ressourcengruppe erstellt werden, können Sie die Ressourcengruppe im Azure-Portal löschen.Since the steps in this document create both clusters in the same Azure resource group, you can delete the resource group in the Azure portal. Durch das Löschen der Ressourcengruppe werden alle beim Durcharbeiten dieses Dokuments erstellten Ressourcen sowie das virtuelle Azure-Netzwerk und das von den Clustern verwendete Speicherkonto entfernt.Deleting the resource group removes all resources created by following this document, the Azure Virtual Network, and storage account used by the clusters.

Nächste SchritteNext Steps

In diesem Dokument haben Sie gelernt, wie MirrorMaker zur Erstellung eines Replikats eines Apache Kafka-Clusters verwendet wird.In this document, you learned how to use MirrorMaker to create a replica of an Apache Kafka cluster. Verwenden Sie die folgenden Links, um weitere Möglichkeiten zur Arbeit mit Kafka kennenzulernen:Use the following links to discover other ways to work with Kafka: