Schnellstart: Erstellen eines Apache Kafka-Clusters in Azure HDInsight im Azure-PortalQuickstart: Create Apache Kafka cluster in Azure HDInsight using Azure portal

Apache Kafka ist eine verteilte Open Source-Streamingplattform.Apache Kafka is an open-source, distributed streaming platform. Sie wird häufig als Nachrichtenbroker eingesetzt, da sie eine ähnliche Funktionalität wie eine Veröffentlichen-Abonnieren-Nachrichtenwarteschlange aufweist.It's often used as a message broker, as it provides functionality similar to a publish-subscribe message queue.

In dieser Schnellstartanleitung lernen Sie, wie Sie mithilfe des Azure-Portals einen Apache Kafka-Cluster erstellen.In this quickstart, you learn how to create an Apache Kafka cluster using the Azure portal. Außerdem erfahren Sie, wie Sie mithilfe von enthaltenen Hilfsprogrammen Nachrichten mit Apache Kafka senden und empfangen.You also learn how to use included utilities to send and receive messages using Apache Kafka.

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.

Auf die Apache Kafka-API kann nur von Ressourcen im gleichen virtuellen Netzwerk zugegriffen werden.The Apache Kafka API can only be accessed by resources inside the same virtual network. In dieser Schnellstartanleitung greifen Sie über SSH direkt auf den Cluster zu.In this quickstart, you access the cluster directly using SSH. Wenn Sie eine Verbindung zwischen anderen Diensten, Netzwerken und virtuellen Computern und Apache Kafka herstellen möchten, müssen Sie zunächst ein virtuelles Netzwerk und anschließend die Ressourcen in diesem Netzwerk erstellen.To connect other services, networks, or virtual machines to Apache Kafka, you must first create a virtual network and then create the resources within the network. Weitere Informationen finden Sie im Dokument Herstellen einer Verbindung mit Apache Kafka in HDInsight über ein virtuelles Azure-Netzwerk.For more information, see the Connect to Apache Kafka using a virtual network document.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Einen SSH-Client.An SSH client. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit HDInsight (Hadoop) per SSH.For more information, see Connect to HDInsight (Apache Hadoop) using SSH.

Erstellen eines Apache Kafka-ClustersCreate an Apache Kafka cluster

Gehen Sie wie folgt vor, um einen Apache Kafka-Cluster in HDInsight zu erstellen:To create an Apache Kafka on HDInsight cluster, use the following steps:

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Navigieren Sie im Menü auf der linken Seite zu + Ressource erstellen > Analytics > HDInsight.From the left menu, navigate to + Create a resource > Analytics > HDInsight.

    Erstellen eines HDInsight-Clusters

  3. Geben Sie unter Grundlagen folgende Informationen ein, bzw. wählen Sie sie aus:From Basics, enter or select the following information:

    EinstellungSetting WertValue
    ClusternameCluster Name Einen eindeutigen Namen für den HDInsight-Cluster.A unique name for the HDInsight cluster.
    SubscriptionSubscription Wählen Sie Ihr Abonnement aus.Select your subscription.

    Wählen Sie Clustertyp aus, um die Clusterkonfiguration zu öffnen.Select Cluster Type to display the Cluster configuration.

    Standardkonfiguration eines Apache Kafka-Clusters in HDInsight

  4. Wählen Sie unter Clusterkonfiguration die folgenden Werte aus:From Cluster configuration, select the following values:

    EinstellungSetting WertValue
    ClustertypCluster Type KafkaKafka
    VersionVersion Kafka 1.1.0 (HDI 3.6)Kafka 1.1.0 (HDI 3.6)

    Klicken Sie auf Auswählen, um die Clustertypeinstellungen zu speichern und zu Grundlagen zurückzukehren.Select Select to save the cluster type settings and return to Basics.

    Auswählen des Clustertyps

  5. Geben Sie unter Grundlagen folgende Informationen ein, bzw. wählen Sie sie aus:From Basics, enter or select the following information:

    EinstellungSetting WertValue
    Benutzername für ClusteranmeldungCluster login username Der Anmeldename für den Zugriff auf Webdienste oder REST-APIs, die im Cluster gehostet werden.The login name when accessing web services or REST APIs hosted on the cluster. Behalten Sie den Standardwert (admin) bei.Keep the default value (admin).
    Kennwort für ClusteranmeldungCluster login password Das Anmeldekennwort für den Zugriff auf Webdienste oder REST-APIs, die im Cluster gehostet werden.The login password when accessing web services or REST APIs hosted on the cluster.
    SSH-Benutzername (Secure Shell)Secure Shell (SSH) username Die für den Clusterzugriff über SSH verwendete Anmeldung.The login used when accessing the cluster over SSH. Das Kennwort ist standardmäßig mit dem Kennwort für die Clusteranmeldung identisch.By default the password is the same as the cluster login password.
    RessourcengruppeResource Group Die Ressourcengruppe, in der der Cluster erstellt wird.The resource group to create the cluster in.
    LocationLocation Die Azure-Region, in der der Cluster erstellt werden soll.The Azure region to create the cluster in.

    Jede Azure-Region (Standort) verfügt über Fehlerdomänen.Each Azure region (location) provides fault domains. Eine Fehlerdomäne ist eine logische Gruppierung von zugrundeliegender Hardware in einem Azure-Rechenzentrum.A fault domain is a logical grouping of underlying hardware in an Azure data center. Jede Fehlerdomäne verwendet eine Stromquelle und einen Netzwerkswitch gemeinsam.Each fault domain shares a common power source and network switch. Die virtuellen Computer und verwalteten Datenträger, die die Knoten innerhalb eines HDInsight-Clusters implementieren, werden auf diese Fehlerdomänen verteilt.The virtual machines and managed disks that implement the nodes within an HDInsight cluster are distributed across these fault domains. Diese Architektur schränkt die potenziellen Auswirkungen physischer Hardwarefehler ein.This architecture limits the potential impact of physical hardware failures.

    Für Hochverfügbarkeit von Daten wählen Sie eine Region (Speicherort) mit drei Fehlerdomänen.For high availability of data, select a region (location) that contains three fault domains. Informationen zur Anzahl von Fehlerdomänen in einer Region finden Sie im Dokument Verwalten der Verfügbarkeit virtueller Linux-Computer.For information on the number of fault domains in a region, see the Availability of Linux virtual machines document.

    Wählen Sie das Abonnement aus.

    Wählen Sie Weiter aus, um die grundlegende Konfiguration abzuschließen.Select Next to finish basic configuration.

  6. Übernehmen Sie im Rahmen dieser Schnellstartanleitung die Standardeinstellung.For this quickstart, leave the default security settings. Weitere Informationen zum Enterprise-Sicherheitspaket finden Sie unter Konfigurieren eines HDInsight-Clusters mit Enterprise-Sicherheitspaket (Enterprise Security Package, ESP) mithilfe von Azure Active Directory Domain Services.To learn more about Enterprise Security package, visit Configure a HDInsight cluster with Enterprise Security Package by using Azure Active Directory Domain Services. Unter Bring Your Own Key für Apache Kafka in Azure HDInsight (Vorschauversion) erfahren Sie, wie Sie Ihren eigenen Schlüssel für die Apache Kafka-Datenträgerverschlüsselung verwenden.To learn how to use your own key for Apache Kafka Disk Encryption, visit Bring your own key for Apache Kafka on Azure HDInsight

    Wenn Sie Ihren Cluster mit einem virtuellen Netzwerk verbinden möchten, wählen Sie ein virtuelles Netzwerk aus der Dropdownliste Virtuelles Netzwerk aus.If you would like to connect your cluster to a virtual network, select a virtual network from the Virtual network dropdown.

    Hinzufügen des Clusters zu einem virtuellen Netzwerk

  7. Wählen Sie unter Speicher ein Speicherkonto aus, oder erstellen Sie eines.From Storage, select or create a Storage account. Behalten Sie für die Schritte in diesem Dokument für die weiteren Felder die Standardwerte bei.For the steps in this document, leave the other fields at the default values. Speichern Sie mit der Schaltfläche Weiter die Speicherkonfiguration.Use the Next button to save storage configuration. Weitere Informationen zur Verwendung von Data Lake Storage Gen2 finden Sie unter Schnellstart: Einrichten von Clustern in HDInsight.For more information on using Data Lake Storage Gen2, see Quickstart: Set up clusters in HDInsight.

    Festlegen der Speicherkontoeinstellungen für HDInsight

  8. Wählen Sie unter Anwendungen (optional) zum Fortfahren mit den Standardeinstellungen Weiter aus.From Applications (optional), select Next to continue with the default settings.

  9. Wählen Sie unter Clustergröße zum Fortfahren mit den Standardeinstellungen Weiter aus.From Cluster size, select Next to continue with the default settings.

    Um die Verfügbarkeit von Apache Kafka in HDInsight zu gewährleisten, muss der Eintrag Anzahl von Workerknoten mindestens auf „3“ festgelegt werden.To guarantee availability of Apache Kafka on HDInsight, the number of worker nodes entry must be set to 3 or greater. Der Standardwert ist 4.The default value is 4.

    Der Eintrag für Datenträger pro Workerknoten konfiguriert die Skalierbarkeit von Apache Kafka in HDInsight.The disks per worker node entry configures the scalability of Apache Kafka on HDInsight. Apache Kafka in HDInsight verwendet den lokalen Datenträger der virtuellen Computer im Cluster, um Daten zu speichern.Apache Kafka on HDInsight uses the local disk of the virtual machines in the cluster to store data. Da Apache Kafka sehr E/A-intensiv ist, wird Azure Managed Disks verwendet, um einen hohen Durchsatz zu ermöglichen und mehr Speicher pro Knoten bereitzustellen.Apache Kafka is I/O heavy, so Azure Managed Disks are used to provide high throughput and more storage per node. Der Typ des verwalteten Datenträgers kann entweder Standard (HDD) oder Premium (SSD) sein.The type of managed disk can be either Standard (HDD) or Premium (SSD). Die Art des Datenträgers hängt von der VM-Größe ab, die von den Workerknoten (Apache Kafka-Broker) verwendet wird.The type of disk depends on the VM size used by the worker nodes (Apache Kafka brokers). Premium-Datenträger werden automatisch mit virtuellen Computern der DS- und GS-Serie verwendet.Premium disks are used automatically with DS and GS series VMs. Alle anderen virtuellen Computertypen verwenden den Standardtyp.All other VM types use standard.

    Festlegen der Apache Kafka-Clustergröße

  10. Wählen Sie unter Erweiterte Einstellungen zum Fortfahren mit den Standardeinstellungen Weiter aus.From Advanced settings, select Next to continue with the default settings.

  11. Überprüfen Sie unter Zusammenfassung die Konfiguration für den Cluster.From the Summary, review the configuration for the cluster. Ändern Sie ggf. falsche Einstellungen mithilfe der Link zum Bearbeiten.Use the Edit links to change any settings that are incorrect. Wählen Sie zum Schluss Erstellen aus, um den Cluster zu erstellen.Finally, select Create to create the cluster.

    Zusammenfassung der Clusterkonfiguration

    Das Erstellen des Clusters kann bis zu 20 Minuten dauern.It can take up to 20 minutes to create the cluster.

Verbinden mit dem ClusterConnect to the cluster

  1. Verwenden Sie zum Herstellen einer Verbindung mit dem primären Hauptknoten des Apache Kafka-Clusters den folgenden Befehl.To connect to the primary head node of the Apache Kafka cluster, use the following command. Ersetzen Sie sshuser durch den SSH-Benutzernamen.Replace sshuser with the SSH user name. Ersetzen Sie mykafka durch den Namen Ihres Apache Kafka-Clusters.Replace mykafka with the name of your Apache Kafkacluster.

    ssh sshuser@mykafka-ssh.azurehdinsight.net
    
  2. Wenn Sie zum ersten Mal eine Verbindung mit dem Cluster herstellen, zeigt der SSH-Client unter Umständen eine Warnung mit dem Hinweis an, dass die Echtheit des Hosts nicht bestätigt werden kann.When you first connect to the cluster, your SSH client may display a warning that the authenticity of the host can't be established. Geben Sie in diesem Fall Ja ein, und drücken Sie dann die EINGABETASTE, um den Host der Liste mit den vertrauenswürdigen Servern des SSH-Clients hinzuzufügen.When prompted type yes, and then press Enter to add the host to your SSH client's trusted server list.

  3. Geben Sie nach Aufforderung das Kennwort für den SSH-Benutzer ein.When prompted, enter the password for the SSH user.

    Nach der Verbindungsherstellung sehen die angezeigten Informationen in etwa wie folgt aus:Once connected, you see information similar to the following text:

    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
    

Beschaffen der Apache Zookeeper- und Broker-HostinformationenGet the Apache Zookeeper and Broker host information

Bei der Verwendung von Kafka müssen Ihnen die Apache Zookeeper- und die Broker-Hosts bekannt sein.When working with Kafka, you must know the Apache Zookeeper and Broker hosts. Diese Hosts werden zusammen mit der Apache Kafka-API und vielen Hilfsprogrammen verwendet, die in Kafka enthalten sind.These hosts are used with the Apache Kafka API and many of the utilities that ship with Kafka.

In diesem Abschnitt rufen Sie die Hostinformationen aus der Apache Ambari-REST-API im Cluster ab.In this section, you get the host information from the Apache Ambari REST API on the cluster.

  1. Installieren Sie den JSON-Befehlszeilenprozessor jq.Install jq, a command-line JSON processor. Dieses Hilfsprogramm wird verwendet, um JSON-Dokumente zu analysieren, und es ist beim Analysieren der Hostinformationen hilfreich.This utility is used to parse JSON documents, and is useful in parsing the host information. Geben Sie über die geöffnete SSH-Verbindung den folgenden Befehl ein, um jq zu installieren:From the open SSH connection, enter following command to install jq:

    sudo apt -y install jq
    
  2. Richten Sie Umgebungsvariablen ein.Set up environment variables. Ersetzen Sie PASSWORD und CLUSTERNAME durch das Kennwort für die Clusteranmeldung bzw. durch den Clusternamen, und geben Sie anschließend den folgenden Befehl ein:Replace PASSWORD and CLUSTERNAME with the cluster login password and cluster name respectively, then enter the command:

    export password='PASSWORD'
    export clusterNameA='CLUSTERNAME'
    
  3. Extrahieren Sie den Clusternamen mit korrekter Groß-/Kleinschreibung.Extract correctly cased cluster name. Die tatsächliche Schreibweise des Clusternamens kann je nach Clustererstellung anders sein als erwartet.The actual casing of the cluster name may be different than you expect, depending on how the cluster was created. Dieser Befehl ruft den Namen mit korrekter Groß-/Kleinschreibung ab, speichert ihn in einer Variablen und zeigt anschließend den Namen mit korrekter Groß-/Kleinschreibung sowie den Namen an, den Sie zuvor angegeben haben.This command will obtain the actual casing, store it in a variable, and then display the correctly cased name, and the name you provided earlier. Geben Sie den folgenden Befehl ein:Enter the following command:

    export clusterName=$(curl -u admin:$password -sS -G "https://$clusterNameA.azurehdinsight.net/api/v1/clusters" | jq -r '.items[].Clusters.cluster_name')
    echo $clusterName, $clusterNameA
    
  4. Verwenden Sie den folgenden Befehl, um eine Umgebungsvariable mit Zookeeper-Hostinformationen festzulegen.To set an environment variable with Zookeeper host information, use the command below. Dieser Befehl ruft alle Zookeeper-Hosts ab und gibt dann nur die ersten beiden Einträge zurück.The command retrieves all Zookeeper hosts, then returns only the first two entries. Diese Redundanz ist hilfreich, wenn ein Host nicht erreichbar ist.This is because you want some redundancy in case one host is unreachable.

    export KAFKAZKHOSTS=`curl -sS -u admin:$password -G http://headnodehost:8080/api/v1/clusters/$clusterName/services/ZOOKEEPER/components/ZOOKEEPER_SERVER | jq -r '["\(.host_components[].HostRoles.host_name):2181"] | join(",")' | cut -d',' -f1,2`
    

    Dieser Befehl fragt den Ambari-Dienst auf dem Hauptknoten des Clusters direkt ab.This command directly queries the Ambari service on the cluster head node. Auf Ambari kann auch über die öffentliche Adresse https://$CLUSTERNAME.azurehdinsight.net:80/ zugegriffen werden.You can also access Ambari using the public address of https://$CLUSTERNAME.azurehdinsight.net:80/. Einige Netzwerkkonfigurationen verhindern unter Umständen den Zugriff auf die öffentliche Adresse.Some network configurations can prevent access to the public address. Ein Beispiel wäre etwa die Verwendung von Netzwerksicherheitsgruppen (NSGs), um den Zugriff auf HDInsight in einem virtuellen Netzwerk einzuschränken.For example, using Network Security Groups (NSG) to restrict access to HDInsight in a virtual network.

  5. Vergewissern Sie sich mithilfe des folgenden Befehls, dass die Umgebungsvariable korrekt festgelegt ist:To verify that the environment variable is set correctly, use the following command:

    echo $KAFKAZKHOSTS
    

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

    zk0-kafka.eahjefxxp1netdbyklgqj5y1ud.ex.internal.cloudapp.net:2181,zk2-kafka.eahjefxxp1netdbyklgqj5y1ud.ex.internal.cloudapp.net:2181

  6. Verwenden Sie den folgenden Befehl, um eine Umgebungsvariable mit Apache Kafka-Brokerhostinformationen festzulegen:To set an environment variable with Apache Kafka broker host information, use the following command:

    export KAFKABROKERS=`curl -sS -u admin:$password -G http://headnodehost:8080/api/v1/clusters/$clusterName/services/KAFKA/components/KAFKA_BROKER | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2`
    
  7. Vergewissern Sie sich mithilfe des folgenden Befehls, dass die Umgebungsvariable korrekt festgelegt ist:To verify that the environment variable is set correctly, use the following command:

    echo $KAFKABROKERS
    

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

    wn1-kafka.eahjefxxp1netdbyklgqj5y1ud.cx.internal.cloudapp.net:9092,wn0-kafka.eahjefxxp1netdbyklgqj5y1ud.cx.internal.cloudapp.net:9092

Verwalten von Apache Kafka-ThemenManage Apache Kafka topics

Kafka speichert Datenströme in Themen.Kafka stores streams of data in topics. Mit dem Hilfsprogramm kafka-topics.sh können Sie Themen verwalten.You can use the kafka-topics.sh utility to manage topics.

  • Führen Sie folgenden Befehl in der SSH-Verbindung aus, um ein Thema zu erstellen:To create a topic, use the following command in the SSH connection:

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

    Mit diesem Befehl wird unter Verwendung der in $KAFKAZKHOSTS gespeicherten Informationen eine Verbindung mit Zookeeper hergestellt.This command connects to Zookeeper using the host information stored in $KAFKAZKHOSTS. Anschließend wird ein Apache Kafka-Thema mit dem Namen test erstellt.It then creates an Apache Kafka topic named test.

    • In diesem Thema gespeicherte Daten werden auf acht Partitionen aufgeteilt.Data stored in this topic is partitioned across eight partitions.

    • Jede Partition wird auf drei Workerknoten im Cluster repliziert.Each partition is replicated across three worker nodes in the cluster.

      Wenn Sie den Cluster in einer Azure-Region mit drei Fehlerdomänen erstellt haben, verwenden Sie den Replikationsfaktor 3.If you created the cluster in an Azure region that provides three fault domains, use a replication factor of 3. Verwenden Sie andernfalls den Replikationsfaktor 4.Otherwise, use a replication factor of 4.

      In Regionen mit drei Fehlerdomänen ermöglicht der Replikationsfaktor 3 die Verteilung von Replikaten auf die Fehlerdomänen.In regions with three fault domains, a replication factor of 3 allows replicas to be spread across the fault domains. In Regionen mit zwei Fehlerdomänen ermöglicht der Replikationsfaktor 4 die gleichmäßige Verteilung von Replikaten auf die Domänen.In regions with two fault domains, a replication factor of four spreads the replicas evenly across the domains.

      Informationen zur Anzahl von Fehlerdomänen in einer Region finden Sie im Dokument Verwalten der Verfügbarkeit virtueller Linux-Computer.For information on the number of fault domains in a region, see the Availability of Linux virtual machines document.

      Azure-Fehlerdomänen sind Apache Kafka nicht bekannt.Apache Kafka is not aware of Azure fault domains. Beim Erstellen von Partitionsreplikaten für Themen kann es daher vorkommen, dass die Replikate nicht ordnungsgemäß für Hochverfügbarkeit verteilt werden.When creating partition replicas for topics, it may not distribute replicas properly for high availability.

      Verwenden Sie das Tool zum Ausgleichen von Apache Kafka-Partitionen, um Hochverfügbarkeit zu gewährleisten.To ensure high availability, use the Apache Kafka partition rebalance tool. Dieses Tool muss über eine SSH-Verbindung mit dem Hauptknoten des Apache Kafka-Clusters ausgeführt werden.This tool must be ran from an SSH connection to the head node of your Apache Kafka cluster.

      Um eine möglichst hohe Verfügbarkeit Ihrer Apache Kafka-Daten zu erreichen, sollten Sie in folgenden Fällen die Partitionsreplikate für Ihr Thema ausgleichen:For the highest availability of your Apache Kafka data, you should rebalance the partition replicas for your topic when:

      • Wenn ein neues Thema oder eine neue Partition erstellt wirdYou create a new topic or partition

      • Wenn Sie einen Cluster zentral hochskalierenYou scale up a cluster

  • Verwenden Sie den folgenden Befehl, um Themen aufzulisten:To list topics, use the following command:

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

    Dieser Befehl listet die für den Apache Kafka-Cluster verfügbaren Themen auf.This command lists the topics available on the Apache Kafka cluster.

  • Verwenden Sie zum Löschen eines Themas den folgenden Befehl:To delete a topic, use the following command:

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

    Dieser Befehl löscht das Thema topicname.This command deletes the topic named topicname.

    Warnung

    Wenn Sie das zuvor erstellte Thema test löschen, müssen Sie es neu erstellen.If you delete the test topic created earlier, then you must recreate it. Es wird weiter unten in diesem Dokument verwendet.It is used by steps later in this document.

Wenn Sie weitere Informationen zu den mit dem Hilfsprogramm kafka-topics.sh verfügbaren Befehlen anzeigen möchten, verwenden Sie den folgenden Befehl:For more information on the commands available with the kafka-topics.sh utility, use the following command:

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

Erstellen und Nutzen von DatensätzenProduce and consume records

Bei Kafka werden Datensätze in Themen gespeichert.Kafka stores records in topics. Datensätze werden von Producern erstellt und von Consumern genutzt.Records are produced by producers, and consumed by consumers. Producer und Consumer kommunizieren mit dem Kafka-Brokerdienst.Producers and consumers communicate with the Kafka broker service. Jeder Workerknoten in Ihrem HDInsight-Cluster ist ein Apache Kafka-Brokerhost.Each worker node in your HDInsight cluster is an Apache Kafka broker host.

Gehen Sie wie folgt vor, um Datensätze im zuvor erstellten Testthema zu speichern und sie anschließend mithilfe eines Consumers zu lesen:To store records into the test topic you created earlier, and then read them using a consumer, use the following steps:

  1. Verwenden Sie zum Schreiben von Datensätzen in das Thema das Hilfsprogramm kafka-console-producer.sh über die SSH-Verbindung:To write records to the topic, use the kafka-console-producer.sh utility from the SSH connection:

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

    Nach diesem Befehl erreichen Sie eine leere Zeile.After this command, you arrive at an empty line.

  2. Geben Sie eine Textnachricht in die leere Zeile ein, und drücken Sie die EINGABETASTE.Type a text message on the empty line and hit enter. Geben Sie auf diese Weise mehrere Nachrichten ein, und drücken Sie anschließend STRG+C, um zur normalen Eingabeaufforderung zurückzukehren.Enter a few messages this way, and then use Ctrl + C to return to the normal prompt. Die einzelnen Zeilen werden jeweils als separater Datensatz an das Apache Kafka-Thema gesendet.Each line is sent as a separate record to the Apache Kafka topic.

  3. Verwenden Sie zum Lesen von Datensätzen aus dem Thema das Hilfsprogramm kafka-console-consumer.sh über die SSH-Verbindung:To read records from the topic, use the kafka-console-consumer.sh utility from the SSH connection:

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

    Die Datensätze werden mit dem Befehl aus dem Thema abgerufen und angezeigt.This command retrieves the records from the topic and displays them. Mit --from-beginning wird der Consumer angewiesen, am Anfang des Datenstroms zu beginnen, damit alle Datensätze abgerufen werden.Using --from-beginning tells the consumer to start from the beginning of the stream, so all records are retrieved.

    Falls Sie eine ältere Version von Kafka verwenden, ersetzen Sie --bootstrap-server $KAFKABROKERS durch --zookeeper $KAFKAZKHOSTS.If you are using an older version of Kafka, replace --bootstrap-server $KAFKABROKERS with --zookeeper $KAFKAZKHOSTS.

  4. Drücken Sie STRG+C, um den Consumer zu beenden.Use Ctrl + C to stop the consumer.

Sie können Producer und Consumer auch programmgesteuert erstellen.You can also programmatically create producers and consumers. Ein Beispiel für die Verwendung dieser API finden Sie im Dokument Tutorial: Verwenden der Apache Kafka Producer- und Consumer-APIs.For an example of using this API, see the Apache Kafka Producer and Consumer API with HDInsight document.

Bereinigen von RessourcenClean up resources

Um die Ressourcen zu bereinigen, die im Rahmen dieser Schnellstartanleitung erstellt wurden, können Sie die Ressourcengruppe löschen.To clean up the resources created by this quickstart, you can delete the resource group. Dadurch werden auch der zugeordnete HDInsight-Cluster sowie alle anderen Ressourcen gelöscht, die der Ressourcengruppe zugeordnet sind.Deleting the resource group also deletes the associated HDInsight cluster, and any other resources associated with the resource group.

So entfernen Sie die Ressourcengruppe über das Azure-Portal:To remove the resource group using the Azure portal:

  1. Erweitern Sie im Azure-Portal das Menü auf der linken Seite, um das Menü mit den Diensten zu öffnen, und klicken Sie auf Ressourcengruppen, um die Liste mit Ihren Ressourcengruppen anzuzeigen.In the Azure portal, expand the menu on the left side to open the menu of services, and then choose Resource Groups to display the list of your resource groups.
  2. Suchen Sie die zu löschende Ressourcengruppe, und klicken Sie mit der rechten Maustaste rechts neben dem Eintrag auf die Schaltfläche Mehr (...).Locate the resource group to delete, and then right-click the More button (...) on the right side of the listing.
  3. Klicken Sie auf Ressourcengruppe löschen, und bestätigen Sie den Vorgang.Select Delete resource group, and then confirm.

Warnung

Die Abrechnung für einen HDInsight-Cluster beginnt, sobald der Cluster erstellt wurde, und endet mit dem Löschen des Clusters.HDInsight cluster billing starts once a cluster is created and stops when the cluster is deleted. Die Gebühren werden anteilig nach Minuten erhoben. Daher sollten Sie Ihren Cluster immer löschen, wenn Sie ihn nicht mehr verwenden.Billing is pro-rated per minute, so you should always delete your cluster when it is no longer in use.

Wenn Sie einen Apache Kafka-Cluster in HDInsight löschen, werden auch alle in Kafka gespeicherten Daten gelöscht.Deleting an Apache Kafka on HDInsight cluster deletes any data stored in Kafka.

Nächste SchritteNext steps