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. Die beiden Cluster befinden sich in verschiedenen virtuellen Netzwerken in verschiedenen Rechenzentren.Both clusters are in different virtual networks in different datacenters.

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 im primären und sekundären Cluster, sodass die Cluster für Clients nicht austauschbar sind.The offset to items within a topic are different between the primary and secondary 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 primären Cluster zu nutzen und anschließend eine lokale Kopie im sekundären Cluster zu erstellen.Mirroring works by using the MirrorMaker tool (part of Apache Kafka) to consume records from topics on the primary cluster and then create a local copy on the secondary cluster. MirrorMaker nutzt einen (oder mehrere) Consumer zum Lesen von Daten aus dem primären Cluster und einen Producer, der in den lokalen Cluster (sekundären Cluster) schreibt.MirrorMaker uses one (or more) consumers that read from the primary cluster, and a producer that writes to the local (secondary) cluster.

Am sinnvollsten ist es, die Spiegelung für die Notfallwiederherstellung mit Kafka-Clustern in verschiedenen Azure-Regionen einzurichten.The most useful mirroring setup for disaster recovery utilizes Kafka clusters in different Azure regions. Zu diesem Zweck werden die virtuellen Netzwerke, in denen sich die Cluster befinden, zu einem Peeringnetzwerk zusammengeschlossen.To achieve this, the virtual networks where the clusters reside are peered together.

Das folgende Diagramm veranschaulicht den Spiegelungsprozess und den Kommunikationsfluss zwischen den Clustern:The following diagram illustrates the mirroring process and how the communication flows between clusters:

Diagramm des Spiegelungsprozesses

Der primäre und der sekundäre Cluster können sich in Bezug auf die Anzahl von Knoten und Partitionen unterscheiden, und auch der Versatz in den Themen ist unterschiedlich.The primary and secondary 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 TCP/IP level.

  • Serveradresse: Sie können die IP-Adressen oder die vollqualifizierten Domänennamen verwenden, um Ihre Clusterknoten zu erreichen.Server addressing: You can choose to address your cluster nodes using their IP addresses or fully qualified domain names.

    • IP-Adressen: Wenn Sie Ihre Kafka-Cluster für die Ankündigung der IP-Adresse konfigurieren, können Sie die Spiegelung mit den IP-Adressen der Brokerknoten und der Zookeeperknoten einrichten.IP addresses: If you configure your Kafka clusters to use IP address advertising, you can proceed with the mirroring setup using the IP addresses of the broker nodes and zookeeper nodes.

    • Domänennamen: Wenn Sie Ihre Kafka-Cluster nicht für die Ankündigung der IP-Adresse konfigurieren, müssen die Cluster über ihre vollqualifizierten Domänennamen eine Verbindung miteinander herstellen können.Domain names: If you don't configure your Kafka clusters for IP address advertising, the clusters must be able to connect to each other by using Fully Qualified Domain Names (FQDNs). Hierfür ist ein DNS-Server (Domain Name System) in jedem Netzwerk erforderlich, der dafür konfiguriert ist, Anforderungen an die anderen Netzwerke weiterzuleiten.This requires 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.

Architektur der SpiegelungMirroring architecture

In dieser Architektur befinden sich zwei Cluster in verschiedenen Ressourcengruppen und virtuellen Netzwerken: ein primärer und ein sekundärer Cluster.This architecture features two clusters in different resource groups and virtual networks: a primary and secondary.

Schritte zur ErstellungCreation steps

  1. Erstellen Sie zwei neue Ressourcengruppen:Create two new resource groups:

    RessourcengruppeResource Group LocationLocation
    kafka-primary-rgkafka-primary-rg USA (Mitte)Central US
    kafka-secondary-rgkafka-secondary-rg USA Nord MitteNorth Central US
  2. Erstellen Sie in kafka-primary-rg ein neues virtuelles Netzwerk namens kafka-primary-vnet.Create a new virtual network kafka-primary-vnet in kafka-primary-rg. Übernehmen Sie die Standardeinstellungen.Leave the default settings.

  3. Erstellen Sie – ebenfalls mit den Standardeinstellungen – in kafka-secondary-rg ein neues virtuelles Netzwerk namens kafka-secondary-vnet.Create a new virtual network kafka-secondary-vnet in kafka-secondary-rg, also with default settings.

  4. Erstellen Sie zwei neue Kafka-Cluster:Create two new Kafka clusters:

    ClusternameCluster name RessourcengruppeResource Group Virtual NetworkVirtual Network SpeicherkontoStorage Account
    kafka-primary-clusterkafka-primary-cluster kafka-primary-rgkafka-primary-rg kafka-primary-vnetkafka-primary-vnet kafkaprimarystoragekafkaprimarystorage
    kafka-secondary-clusterkafka-secondary-cluster kafka-secondary-rgkafka-secondary-rg kafka-secondary-vnetkafka-secondary-vnet kafkasecondarystoragekafkasecondarystorage
  5. Erstellen Sie virtuelle Netzwerkpeerings.Create virtual network peerings. Mit diesem Schritt werden zwei Peerings erstellt: eins von kafka-primary-vnet zu kafka-secondary-vnet und das andere von kafka-secondary-vnet zurück zu kafka-primary-vnet.This step will create two peerings: one from kafka-primary-vnet to kafka-secondary-vnet and one back from kafka-secondary-vnet to kafka-primary-vnet.

    1. Wählen Sie das virtuelle Netzwerk kafka-primary-vnet aus.Select the kafka-primary-vnet virtual network.

    2. Klicken Sie unter Einstellungen auf Peerings.Click Peerings under Settings.

    3. Klicken Sie auf Hinzufügen.Click Add.

    4. Geben Sie auf dem Bildschirm Peering hinzufügen die Informationen wie im Screenshot unten gezeigt ein.On the Add peering screen, enter the details as shown in the screenshot below.

      Hinzufügen des VNET-Peerings

  6. Konfigurieren der Ankündigung der IP-Adresse:Configure IP advertising:

    1. Wechseln Sie zum Ambari-Dashboard für den primären Cluster: https://PRIMARYCLUSTERNAME.azurehdinsight.net.Go to the Ambari dashboard for the primary cluster: https://PRIMARYCLUSTERNAME.azurehdinsight.net.

    2. Klicken Sie auf Services > Kafka (Dienste > Kafka).Click Services > Kafka. Klicken Sie auf die Registerkarte Configs .Click the Configs tab.

    3. Fügen Sie dem unteren Abschnitt kafka-env template folgende Konfigurationszeilen hinzu.Add the following config lines to the bottom kafka-env template section. Klicken Sie auf Speichern.Click Save.

      # 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. Geben Sie auf dem Bildschirm Save Configuration (Konfiguration speichern) einen Hinweis ein, und klicken Sie auf Save (Speichern).Enter a note on the Save Configuration screen and click Save.

    5. Wenn eine Konfigurationswarnung angezeigt wird, klicken Sie auf Proceed Anyway (Trotzdem fortsetzen).If you are prompted with configuration warning, click Proceed Anyway.

    6. Klicken Sie bei Save Configuration Changes (Konfigurationsänderungen speichern) auf OK.Click Ok on the Save Configuration Changes.

    7. Klicken Sie in der Benachrichtigung Restart Required (Neustart erforderlich) auf Restart > Restart All Affected (Neustart > Alle betroffenen neu starten).Click Restart > Restart All Affected in the Restart Required notification. Klicken Sie auf Confirm Restart All (Bestätigen: Alle neu starten).Click Confirm Restart All.

      Neustart von Kafka-Knoten

  7. Konfigurieren Sie Kafka zum Lauschen auf allen Netzwerkschnittstellen.Configure Kafka to listen on all network interfaces.

    1. Bleiben Sie auf der Registerkarte Configs (Konfigurationen) unter Services > Kafka (Dienste > Kafka).Stay on the Configs tab under Services > Kafka. Legen Sie im Abschnitt Kafka Broker die Eigenschaft listeners auf PLAINTEXT://0.0.0.0:9092 fest.In the Kafka Broker section set the listeners property to PLAINTEXT://0.0.0.0:9092.
    2. Klicken Sie auf Speichern.Click Save.
    3. Klicken Sie auf Restart (Neustart) und auf Confirm Restart All (Bestätigen: Alle neu starten).Click Restart, and Confirm Restart All.
  8. Notieren Sie sich die IP-Adressen der Broker und Zookeeper für den primären Cluster.Record Broker IP addresses and Zookeeper addresses for primary cluster.

    1. Klicken Sie auf dem Ambari-Dashboard auf Hosts.Click Hosts on the Ambari dashboard.

    2. Notieren Sie sich die IP-Adressen für Broker und Zookeeper.Make a note of the IP Addresses for the Brokers and Zookeepers. Die ersten beiden Buchstaben des Hostnamens lauten wn für die Brokerknoten und zk für die Zookeeperknoten.The broker nodes have wn as the first two letters of the host name, and the zookeeper nodes have zk as the first two letters of the host name.

      Anzeigen von IP-Adressen

  9. Wiederholen Sie die vorangegangenen drei Schritte für den zweiten Cluster kafka-secondary-cluster: Konfigurieren der Ankündigung von IP-Adressen, Einrichten von Listenern und Notieren der IP-Adressen von Broker und Zookeeper.Repeat the previous three steps for the second cluster kafka-secondary-cluster: configure IP advertising, set listeners and make a note of the Broker and Zookeeper IP addresses.

Erstellen von ThemenCreate topics

  1. Stellen Sie über SSH eine Verbindung mit dem primären Cluster her:Connect to the primary cluster using SSH:

    ssh sshuser@PRIMARYCLUSTER-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 den folgenden Befehl, um eine Variable mit den Apache-Zookeeperhosts für den primären Cluster zu erstellen.Use the following command to create a variable with the Apache Zookeeper hosts for the primary cluster. Zeichenfolgen wie ZOOKEEPER_IP_ADDRESS1 müssen durch die tatsächlichen IP-Adressen ersetzt werden, die Sie zuvor notiert haben, z.B. 10.23.0.11 und 10.23.0.7.The strings like ZOOKEEPER_IP_ADDRESS1 must be replaced with the actual IP addresses recorded earlier, such as 10.23.0.11 and 10.23.0.7. Wenn Sie die Auflösung von vollqualifizierten Domänennamen mit einem benutzerdefiniertem DNS-Server verwenden, führen Sie diese Schritte aus, um die Namen der Broker und Zookeeper abzurufen:If you are using FQDN resolution with a custom DNS server, follow these steps to get broker and zookeeper names.:

    # get the zookeeper hosts for the primary cluster
    export PRIMARY_ZKHOSTS='ZOOKEEPER_IP_ADDRESS1:2181, ZOOKEEPER_IP_ADDRESS2:2181, ZOOKEEPER_IP_ADDRESS3:2181'
    
  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 $PRIMARY_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 $PRIMARY_ZKHOSTS
    

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

  5. Verwenden Sie Folgendes, um die Informationen zum Zookeeperhost für diesen Cluster (den primären Cluster) anzuzeigen:Use the following to view the Zookeeper host information for this (the primary) cluster:

    echo $PRIMARY_ZKHOSTS
    

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

    10.23.0.11:2181,10.23.0.7:2181,10.23.0.9: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 sekundären Cluster her:Connect to the secondary cluster using a different SSH session:

    ssh sshuser@SECONDARYCLUSTER-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 SECONDARYCLUSTER durch den Namen, den Sie beim Erstellen des Clusters verwendet haben.Replace SECONDARYCLUSTER with the 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 primären Cluster konfiguriert.A consumer.properties file is used to configure communication with the primary 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=PRIMARY_ZKHOSTS
    group.id=mirrorgroup
    

    Ersetzen Sie PRIMARY_ZKHOSTS durch die IP-Adressen der Zookeeper aus dem primären Cluster.Replace PRIMARY_ZKHOSTS with the Zookeeper IP Addresses from the primary cluster.

    In dieser Datei werden die Consumerinformationen beschrieben, die beim Lesen aus dem primären Kafka-Cluster verwendet werden sollten.This file describes the consumer information to use when reading from the primary 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 sekundären Cluster kommuniziert, richten Sie eine Variable für die IP-Adressen der Broker des sekundären Clusters ein.Before configuring the producer that communicates with the secondary cluster, setup a variable for the broker IP addresses of the secondary cluster. Verwenden Sie die folgenden Befehle, um diese Variable zu erstellen:Use the following commands to create this variable:

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

    Der Befehl echo $SECONDARY_BROKERHOSTS gibt Informationen ähnlich dem folgenden Text zurück:The command echo $SECONDARY_BROKERHOSTS should return information similar to the following text:

    10.23.0.14:9092,10.23.0.4:9092,10.23.0.12:9092

  4. Eine producer.properties-Datei wird für die Kommunikation mit dem sekundären Cluster verwendet.A producer.properties file is used to communicate the secondary 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=SECONDARY_BROKERHOSTS
    compression.type=none
    

    Ersetzen Sie SECONDARY_BROKERHOSTS durch die IP-Adressen der Broker, die im vorherigen Schritt verwendet wurden.Replace SECONDARY_BROKERHOSTS with the broker IP addresses used in 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 eine Umgebungsvariable mit den IP-Adressen der Zookeeperhosts für den sekundären Cluster zu erstellen:Use the following commands to create an environment variable with the IP addresses of the Zookeeper hosts for the secondary cluster:

    # get the zookeeper hosts for the secondary cluster
    export SECONDARY_ZKHOSTS='ZOOKEEPER_IP_ADDRESS1:2181,ZOOKEEPER_IP_ADDRESS2:2181,ZOOKEEPER_IP_ADDRESS3:2181'
    
  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 sekundären Cluster: Bei dieser Option haben Sie auch die Möglichkeit, die Anzahl von Partitionen und den Replikationsfaktor festzulegen.Create the topics on the secondary 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 $SECONDARY_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 primären Thema 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 primary topic.

      Um den sekundären Cluster für das automatische Erstellen von Themen zu konfigurieren, führen Sie die folgenden Schritte aus:To configure the secondary cluster to automatically create topics, perform these steps:

      1. Wechseln Sie zum Ambari-Dashboard für den sekundären Cluster: https://SECONDARYCLUSTERNAME.azurehdinsight.net.Go to the Ambari dashboard for the secondary cluster: https://SECONDARYCLUSTERNAME.azurehdinsight.net.
      2. Klicken Sie auf Services > Kafka (Dienste > Kafka).Click Services > Kafka. Klicken Sie auf die Registerkarte Configs .Click the Configs tab.
      3. 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.
      4. Ä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.
      5. 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.

      Konfigurieren der automatischen Themenerstellung

Starten von MirrorMakerStart MirrorMaker

  1. Verwenden Sie den folgenden Befehl über die SSH-Verbindung mit dem sekundären Cluster, um den MirrorMaker-Prozess zu starten:From the SSH connection to the secondary 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 primären Kafka-Cluster gelesen wird.These properties are used to create a consumer that reads from the primary 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 verwendet, um einen Producer zu erstellen, mit dem in den sekundären Kafka-Cluster geschrieben wird.These properties are used to create a producer that writes to the secondary Kafka cluster.

    • --whitelist: Eine Liste mit Themen, die von MirrorMaker aus dem primären in den sekundären Cluster repliziert werden.--whitelist: A list of topics that MirrorMaker replicates from the primary cluster to the secondary.

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

    Der Consumer auf dem sekundären Knoten wartet jetzt auf Nachrichten.The consumer on the secondary node is now waiting to receive messages.

  2. Verwenden Sie den folgenden Befehl über die SSH-Verbindung mit dem primären Cluster, um einen Producer zu starten und Nachrichten an das Thema zu senden:From the SSH connection to the primary cluster, use the following command to start a producer and send messages to the topic:

    export PRIMARY_BROKERHOSTS=BROKER_IP_ADDRESS1:9092,BROKER_IP_ADDRESS2:9092,BROKER_IP_ADDRESS2:9092
    /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list $SOURCE_BROKERHOSTS --topic testtopic
    

    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 primären Cluster gesendet.The messages are sent to the topic on the primary 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 über die SSH-Verbindung mit dem sekundären Cluster die Tastenkombination STRG + C, um den MirrorMaker-Prozess zu beenden.From the SSH connection to the secondary 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 im sekundären Cluster repliziert wurden, verwenden Sie den folgenden Befehl:To verify that the messages were replicated to the secondary, use the following command:

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

    Die Themenliste enthält nun auch das Thema testtopic, das erstellt wurde, als MirrorMaker das Thema vom primären an den sekundären Cluster gespiegelt hat.The list of topics now includes testtopic, which is created when MirrorMaster mirrors the topic from the primary cluster to the secondary. Die aus dem Thema abgerufenen Nachrichten sind identisch mit den Nachrichten, die Sie im primären Cluster eingegeben haben.The messages retrieved from the topic are the same as the ones you entered on the primary 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.

Mit den Schritten in diesem Dokument wurden Cluster in verschiedenen Azure-Ressourcengruppen erstellt.The steps in this document created clusters in different Azure resource groups. Um alle erstellten Ressourcen zu löschen, können Sie einfach die Ressourcengruppen löschen: kafka-primary-rg und kafka-secondary_rg.To delete all of the resources created, you can delete the two resource groups created: kafka-primary-rg and kafka-secondary_rg. Durch Löschen der Ressourcengruppen werden alle beim Durcharbeiten dieses Dokuments erstellten Ressourcen gelöscht: Cluster, virtuelle Netzwerke und Speicherkonten.Deleting the resource groups removes all of the resources created by following this document, including clusters, virtual networks, and storage accounts.

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: