Bereitstellen und Verwalten von Apache Storm-Topologien in Azure HDInsightDeploy and manage Apache Storm topologies on Azure HDInsight

Dieses Dokument enthält die Grundlagen zur Verwaltung und Überwachung von Apache Storm-Topologien, die unter Storm in HDInsight-Clustern ausgeführt werden.In this document, learn the basics of managing and monitoring Apache Storm topologies running on Storm on HDInsight clusters.

VoraussetzungenPrerequisites

Senden einer Topologie: Visual StudioSubmit a topology: Visual Studio

Mithilfe der HDInsight-Tools können C#- oder hybride Topologien an Ihre Storm-Cluster übermittelt werden.The HDInsight Tools can be used to submit C# or hybrid topologies to your Storm cluster. Für die folgenden Schritte wird eine Beispielanwendung verwendet.The following steps use a sample application. Informationen über das Erstellen mithilfe der HDInsight-Tools finden Sie unter Entwickeln von C#-Topologien mithilfe der HDInsight-Tools für Visual Studio.For information about creating on using the HDInsight Tools, see Develop C# topologies using the HDInsight Tools for Visual Studio.

  1. Wenn Sie die neueste Version der Data Lake-Tools für Visual Studio noch nicht installiert haben, finden Sie Informationen dazu unter Erste Schritte mit den Data Lake-Tools für Visual Studio.If you have not already installed the latest version of the Data Lake tools for Visual Studio, see Get started using Data Lake Tools for Visual Studio.

    Hinweis

    Die Data Lake-Tools für Visual Studio wurden zuvor als HDInsight-Tools für Visual Studio bezeichnet.The Data Lake Tools for Visual Studio were formerly called the HDInsight Tools for Visual Studio.

    Data Lake-Tools für Visual Studio sind in der Azure-Arbeitslast für Visual Studio 2017 enthalten.Data Lake Tools for Visual Studio are included in the Azure Workload for Visual Studio 2017.

  2. Öffnen Sie Visual Studio, und wählen Sie Datei > Neu > Projekt aus.Open Visual Studio, select File > New > Project.

  3. Erweitern Sie im Dialogfeld Neues Projekt die Optionen Installiert > Vorlagen, und wählen Sie dann HDInsight aus.In the New Project dialog box, expand Installed > Templates, and then select HDInsight. Wählen Sie in der Liste der Vorlagen die Option Storm Sampleaus.From the list of templates, select Storm Sample. Geben Sie unten im Dialogfeld einen Namen für die Anwendung ein.At the bottom of the dialog box, type a name for the application.

    image

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie An Storm in HDInsight übermitteln aus.In Solution Explorer, right-click the project, and select Submit to Storm on HDInsight.

    Hinweis

    Wenn Sie dazu aufgefordert werden, geben Sie die Anmeldeinformationen für Ihr Azure-Abonnement ein.If prompted, enter the login credentials for your Azure subscription. Wenn Sie über mehrere Abonnements verfügen, melden Sie sich bei dem Abonnement an, das Ihren Storm-Cluster in HDInsight enthält.If you have more than one subscription, log in to the one that contains your Storm on HDInsight cluster.

  5. Wählen Sie in der Dropdownliste Storm Cluster Ihren Storm-Cluster in HDInsight und dann die Option Übermitteln aus.Select your Storm on HDInsight cluster from the Storm Cluster drop-down list, and then select Submit. Sie können über das Fenster Ausgabe überwachen, ob die Übermittlung erfolgreich ausgeführt wurde.You can monitor whether the submission is successful by using the Output window.

Senden einer Topologie: SSH und der Storm-BefehlSubmit a topology: SSH and the Storm command

  1. Stellen Sie mithilfe von SSH eine Verbindung mit dem HDInsight-Cluster her.Use SSH to connect to the HDInsight cluster. Ersetzen Sie USERNAME durch den Namen der SSH-Anmeldung.Replace USERNAME the name of your SSH login. Ersetzen Sie CLUSTERNAME durch den Namen Ihres HDInsight-Clusters:Replace CLUSTERNAME with your HDInsight cluster name:

     ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net
    

    Weitere Informationen zur Verwendung von SSH für das Herstellen von Verbindungen mit dem HDInsight-Cluster finden Sie unter Verwenden von SSH mit HDInsight.For more information on using SSH to connect to your HDInsight cluster, see Use SSH with HDInsight.

  2. Verwenden Sie zum Starten einer Beispieltopologie den folgenden Befehl.Use the following command to start an example topology:

     storm jar /usr/hdp/current/storm-client/contrib/storm-starter/storm-starter-topologies-*.jar org.apache.storm.starter.WordCountTopology WordCount
    

    Dieser Befehl startet die WordCount-Beispieltopologie auf dem Cluster.This command starts the example WordCount topology on the cluster. Diese Topologie generiert nach dem Zufallsprinzip Sätze und zählt dann die Instanzen jedes Worts in den Sätzen.This topology randomly generates sentences, and then counts the occurrence of each word in the sentences.

    Hinweis

    Wenn die Topologie an den Cluster gesendet wird, müssen Sie zuerst die JAR-Datei mit dem Cluster kopieren, bevor Sie den Befehl storm verwenden.When submitting topology to the cluster, you must first copy the jar file containing the cluster before using the storm command. Um die Datei auf den Cluster zu kopieren, können Sie den scp-Befehl verwenden.To copy the file to the cluster, you can use the scp command. Zum Beispiel, scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jarFor example, scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jar

    Das Beispiel "WordCount" und andere Storm-Starter-Beispiele sind unter /usr/hdp/current/storm-client/contrib/storm-starter/bereits auf dem Cluster enthalten.The WordCount example, and other storm starter examples, are already included on your cluster at /usr/hdp/current/storm-client/contrib/storm-starter/.

Senden einer Topologie: programmgesteuertSubmit a topology: programmatically

Sie können mit dem Nimbus-Dienst programmgesteuert eine Topologie bereitstellen.You can programmatically deploy a topology using the Nimbus service. https://github.com/Azure-Samples/hdinsight-java-deploy-storm-topology stellt eine Java-Beispielanwendung bereit, die zeigt, wie Sie eine Topologie über den Nimbus-Dienst bereitstellen und starten.https://github.com/Azure-Samples/hdinsight-java-deploy-storm-topology provides an example Java application that demonstrates how to deploy and start a topology through the Nimbus service.

Überwachen und Verwalten: Visual StudioMonitor and manage: Visual Studio

Wenn eine Topologie mithilfe von Visual Studio übermittelt wurde, wird die Ansicht Storm-Topologien angezeigt.When a topology is submitted using Visual Studio, the Storm Topologies view appears. Wählen Sie die Topologie aus der Liste aus, um Informationen zur aktiven Topologie anzuzeigen.Select the topology from the list to view information about the running topology.

Visual Studio Monitor

Hinweis

Sie können die Storm-Topologien auch im Server-Explorer anzeigen, indem Sie Azure > HDInsight erweitern und dann mit der rechten Maustaste auf einen Storm-Cluster in HDInsight klicken und View Storm Topologies auswählen.You can also view Storm Topologies from Server Explorer by expanding Azure > HDInsight, and then right-clicking a Storm on HDInsight cluster, and selecting View Storm Topologies.

Wählen Sie die Form für die Spouts oder Bolts aus, um Informationen über diese Komponenten anzuzeigen.Select the shape for the spouts or bolts to view information about these components. Für jedes ausgewählte Element wird ein neues Fenster geöffnet.A new window opens for each item selected.

Deaktivieren und erneutes AktivierenDeactivate and reactivate

Durch das Deaktivieren wird eine Topologie unterbrochen, bis sie beendet oder erneut aktiviert wird.Deactivating a topology pauses it until it is killed or reactivated. Um diese Vorgänge auszuführen, verwenden Sie die Schaltflächen Deaktivieren und Erneut aktivieren oben in der Topologiezusammenfassung.To perform these operations, use the Deactivate and Reactivate buttons at the top of the Topology Summary.

AusgleichenRebalance

Durch das Ausgleichen einer Topologie kann das System die Parallelität der Topologie überarbeiten.Rebalancing a topology allows the system to revise the parallelism of the topology. Wenn Sie z.B. die Größe des Clusters geändert haben, um zusätzliche Notizen hinzuzufügen, ermöglicht ein Ausgleich einer Topologie, die neuen Knoten zu erkennen.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Verwenden Sie für den Ausgleich einer Topologie die Schaltfläche Neu ausgleichen oben in der Topologiezusammenfassung.To rebalance a topology, use the Rebalance button at the top of the Topology Summary.

Warnung

Beim Ausgleichen einer Topologie wird diese zunächst deaktiviert. Anschließend werden die Worker gleichmäßig auf den Cluster verteilt, und zum Schluss wird die Topologie wieder in den Zustand vor dem Ausgleich zurückgesetzt.Rebalancing a topology first deactivates the topology, then redistributes workers evenly across the cluster, then finally returns the topology to the state it was in before rebalancing occurred. Wenn die Topologie also z.B. aktiv war, wird sie wieder aktiviert.So if the topology was active, it becomes active again. Wenn sie deaktiviert war, bleibt sie deaktiviert.If it was deactivated, it remains deactivated.

Beenden einer TopologieKill a topology

Storm-Topologien werden weiterhin ausgeführt, bis sie beendet werden oder der Cluster gelöscht wird.Storm topologies continue running until they are stopped or the cluster is deleted. Verwenden Sie zum Beenden einer Topologie die Schaltfläche Beenden oben in der Topologiezusammenfassung.To stop a topology, use the Kill button at the top of the Topology Summary.

Überwachen und Verwalten: SSH und der Storm-BefehlMonitor and manage: SSH and the Storm command

Mit dem Dienstprogramm storm können Sie an der Befehlszeile mit ausgeführten Topologien arbeiten.The storm utility allows you to work with running topologies from the command line. Eine vollständige Liste der Befehle erhalten Sie mit storm -h .Use storm -h for a full list of commands.

Auflisten der TopologienList topologies

Mit dem folgenden Befehl können Sie alle ausgeführten Topologien auflisten:Use the following command to list all running topologies:

storm list

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

Topology_name        Status     Num_tasks  Num_workers  Uptime_secs
-------------------------------------------------------------------
WordCount            ACTIVE     29         2            263

Deaktivieren und erneutes AktivierenDeactivate and reactivate

Durch das Deaktivieren wird eine Topologie unterbrochen, bis sie beendet oder erneut aktiviert wird.Deactivating a topology pauses it until it is killed or reactivated. Verwenden Sie zum Deaktivieren und erneuten Aktivieren den folgenden Befehl:Use the following command to deactivate and reactivate:

storm Deactivate TOPOLOGYNAME

storm Activate TOPOLOGYNAME

Beenden einer ausgeführten TopologieKill a running topology

Storm-Topologien werden, nachdem sie einmal gestartet wurden, so lange ausgeführt, bis sie beendet werden.Storm topologies, once started, continue running until stopped. Führen Sie zum Beenden einer Topologie den folgenden Befehl aus:To stop a topology, use the following command:

storm kill TOPOLOGYNAME

AusgleichenRebalance

Durch das Ausgleichen einer Topologie kann das System die Parallelität der Topologie überarbeiten.Rebalancing a topology allows the system to revise the parallelism of the topology. Wenn Sie z.B. die Größe des Clusters geändert haben, um zusätzliche Notizen hinzuzufügen, ermöglicht ein Ausgleich einer Topologie, die neuen Knoten zu erkennen.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Warnung

Beim Ausgleichen einer Topologie wird diese zunächst deaktiviert. Anschließend werden die Worker gleichmäßig auf den Cluster verteilt, und zum Schluss wird die Topologie wieder in den Zustand vor dem Ausgleich zurückgesetzt.Rebalancing a topology first deactivates the topology, then redistributes workers evenly across the cluster, then finally returns the topology to the state it was in before rebalancing occurred. Wenn die Topologie also z.B. aktiv war, wird sie wieder aktiviert.So if the topology was active, it becomes active again. Wenn sie deaktiviert war, bleibt sie deaktiviert.If it was deactivated, it remains deactivated.

storm rebalance TOPOLOGYNAME

Überwachen und Verwalten: Storm-BenutzeroberflächeMonitor and manage: Storm UI

Die Storm-Benutzeroberfläche bietet eine Weboberfläche zum Arbeiten mit ausgeführten Topologien und befindet sich auf dem HDInsight-Cluster.The Storm UI provides a web interface for working with running topologies, and is included on your HDInsight cluster. Wenn Sie die Storm-Benutzeroberfläche anzeigen möchten, öffnen Sie https://CLUSTERNAME.azurehdinsight.net/stormui in einem Browser, wobei CLUSTERNAME der Name Ihres Clusters ist.To view the Storm UI, use a web browser to open https://CLUSTERNAME.azurehdinsight.net/stormui, where CLUSTERNAME is the name of your cluster.

Hinweis

Wenn Sie dazu aufgefordert werden, einen Benutzernamen und ein Kennwort anzugeben, geben Sie den Namen des Cluster-Administrators (Admin) und das entsprechende Kennwort ein, die Sie beim Erstellen des Clusters verwendet haben.If asked to provide a user name and password, enter the cluster administrator (admin) and password that you used when creating the cluster.

HauptseiteMain page

Die Hauptseite der Storm-Benutzeroberfläche bietet die folgenden Informationen:The main page of the Storm UI provides the following information:

  • Clusterzusammenfassung: Grundlegende Informationen zum Storm-Cluster.Cluster summary: Basic information about the Storm cluster.
  • Topologiezusammenfassung: Eine Liste der aktiven Topologien.Topology summary: A list of running topologies. Verwenden Sie die Links in diesem Abschnitt, um weitere Informationen zu bestimmten Topologien anzuzeigen.Use the links in this section to view more information about specific topologies.
  • Supervisor-Zusammenfassung: Informationen zum Storm-Supervisor.Supervisor summary: Information about the Storm supervisor.
  • Nimbus-Konfiguration: Die Nimbus-Konfiguration für den Cluster.Nimbus configuration: Nimbus configuration for the cluster.

Topologiezusammenfassung:Topology summary

Wenn Sie einen Link aus dem Abschnitt Topologiezusammenfassung auswählen, werden die folgenden Informationen zur Topologie angezeigt:Selecting a link from the Topology summary section displays the following information about the topology:

  • Topologiezusammenfassung: Grundlegende Informationen zur Topologie.Topology summary: Basic information about the topology.

  • Topologieaktionen: Verwaltungsaktionen, die für die Topologie ausgeführt werden können.Topology actions: Management actions that you can perform for the topology.

    • Aktivieren: Setzt die Verarbeitung einer deaktivierten Topologie fort.Activate: Resumes processing of a deactivated topology.

    • Deaktivieren: Hält eine aktive Topologie an.Deactivate: Pauses a running topology.

    • Ausgleichen: Passt die Parallelität der Topologie an.Rebalance: Adjusts the parallelism of the topology. Sie sollten aktive Topologien ausgleichen, nachdem Sie die Anzahl der Knoten im Cluster geändert haben.You should rebalance running topologies after you have changed the number of nodes in the cluster. Dieser Vorgang ermöglicht der Topologie, die Parallelität anzupassen, um die höhere oder geringere Anzahl der Knoten im Cluster zu kompensieren.This operation allows the topology to adjust parallelism to compensate for the increased or decreased number of nodes in the cluster.

      Weitere Informationen finden Sie unter Grundlegendes zur Parallelität einer Apache Storm-Topologie.For more information, see Understanding the parallelism of an Apache Storm topology.

    • Beenden: Beendet eine Storm-Topologie nach dem angegebenen Zeitlimit.Kill: Terminates a Storm topology after the specified timeout.

  • Topologiestatistik: Statistiken zur Topologie.Topology stats: Statistics about the topology. Verwenden Sie die Links in der Spalte Fenster, um den Zeitrahmen für die verbleibenden Einträge auf der Seite festzulegen.To set the timeframe for the remaining entries on the page, use the links in the Window column.

  • Spouts: Die von der Topologie verwendeten Spouts.Spouts: The spouts used by the topology. Verwenden Sie die Links in diesem Abschnitt, um weitere Informationen zu bestimmten Spouts anzuzeigen.Use the links in this section to view more information about specific spouts.

  • Bolts: Die von der Topologie verwendeten Bolts.Bolts: The bolts used by the topology. Verwenden Sie die Links in diesem Abschnitt, um weitere Informationen zu bestimmten Bolts anzuzeigen.Use the links in this section to view more information about specific bolts.

  • Topologiekonfiguration: Die Konfiguration der ausgewählten Topologie.Topology configuration: The configuration of the selected topology.

Spout und Bolt: ZusammenfassungSpout and Bolt summary

Wenn Sie im Abschnitt Spouts oder Bolts einen Spout auswählen, werden die folgenden Informationen zum ausgewählten Element angezeigt:Selecting a spout from the Spouts or Bolts sections displays the following information about the selected item:

  • Komponentenzusammenfassung: Grundlegende Informationen zum Spout oder Bolt.Component summary: Basic information about the spout or bolt.
  • Statistik für Spout/Bolt: Statistiken zum Spout oder Bolt.Spout/Bolt stats: Statistics about the spout or bolt. Verwenden Sie die Links in der Spalte Fenster, um den Zeitrahmen für die verbleibenden Einträge auf der Seite festzulegen.To set the timeframe for the remaining entries on the page, use the links in the Window column.
  • Eingabestatistik (nur Bolt): Informationen zu den Eingabedatenströmen, die vom Bolt verbraucht werden.Input stats (bolt only): Information about the input streams consumed by the bolt.
  • Ausgabestatistik: Informationen zu den Datenströmen, die vom Spout oder Bolt ausgegeben werden.Output stats: Information about the streams emitted by the spout or bolt.
  • Ausführer: Informationen zu den Instanzen von Spout oder Bolt.Executors: Information about the instances of the spout or bolt. Wählen Sie den Eintrag Port für einen bestimmten Ausführer aus, um ein Protokoll mit Diagnoseinformationen anzuzeigen, das für diese Instanz generiert wurde.Select the Port entry for a specific executor to view a log of diagnostic information produced for this instance.
  • Fehler: Fehlerinformationen für diesen Spout oder Bolt.Errors: Any error information for the spout or bolt.

Überwachen und Verwalten: REST-APIMonitor and manage: REST API

Die Storm-Benutzeroberfläche baut auf der REST-API auf, sodass Sie mithilfe der REST-API ähnliche Verwaltungs- und Überwachungsfunktionen ausführen können.The Storm UI is built on top of the REST API, so you can perform similar management and monitoring functionality by using the REST API. Mithilfe der REST-API können Sie benutzerdefinierte Tools zum Verwalten und Überwachen von Storm-Topologien erstellen.You can use the REST API to create custom tools for managing and monitoring Storm topologies.

Weitere Informationen finden Sie unter REST-API der Apache Storm-Benutzeroberfläche(in englischer Sprache).For more information, see Apache Storm UI REST API. Die folgenden Informationen gelten für die Verwendung der REST-API mit Apache Storm in HDInsight.The following information is specific to using the REST API with Apache Storm on HDInsight.

Wichtig

Die Storm-REST-API ist nicht öffentlich über das Internet verfügbar. Der Zugriff muss über einen SSH-Tunnel zum Hauptknoten des HDInsight-Clusters erfolgen.The Storm REST API is not publicly available over the internet, and must be accessed using an SSH tunnel to the HDInsight cluster head node. Weitere Informationen zum Erstellen und Verwenden eines SSH-Tunnels finden Sie unter Verwenden von SSH-Tunneling zum Zugriff auf die Apache Ambari-Webbenutzeroberfläche, ResourceManager, JobHistory, NameNode, Apache Oozie und andere Webbenutzeroberflächen.For information on creating and using an SSH tunnel, see Use SSH Tunneling to access Apache Ambari web UI, ResourceManager, JobHistory, NameNode, Apache Oozie, and other web UIs.

Basis-URIBase URI

Der Basis-URI für die REST-API auf Linux-basierten HDInsight-Clustern ist auf dem Hauptknoten unter https://HEADNODEFQDN:8744/api/v1/ verfügbar.The base URI for the REST API on Linux-based HDInsight clusters is available on the head node at https://HEADNODEFQDN:8744/api/v1/. Der Domänenname des Hauptknotens wird während der Clustererstellung generiert und ist nicht statisch.The domain name of the head node is generated during cluster creation and is not static.

Sie können den vollqualifizierten Domänennamen (FQDN) für den Clusterhauptknoten auf unterschiedliche Arten ermitteln:You can find the fully qualified domain name (FQDN) for the cluster head node in several different ways:

  • Über eine SSH-Sitzung: Verwenden Sie den Befehl headnode -f für eine SSH-Sitzung mit dem Cluster.From an SSH session: Use the command headnode -f from an SSH session to the cluster.
  • Über Ambari Web: Wählen Sie oben auf der Seite Dienste und dann Storm.From Ambari Web: Select Services from the top of the page, then select Storm. Wählen Sie auf der Registerkarte Zusammenfassung die Option Storm UI-Server.From the Summary tab, select Storm UI Server. Der vollqualifizierte Domänenname des Hosts, auf dem die Storm UI und die REST-API ausgeführt werden, wird oben auf der Seite angezeigt.The FQDN of the node that hosts the Storm UI and REST API is displayed at the top of the page.
  • Über die Ambari-REST-API: Verwenden Sie den Befehl curl -u admin -G "https:\//CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/STORM/components/STORM_UI_SERVER", um Informationen zu dem Knoten abzurufen, auf dem die Storm UI und die REST-API ausgeführt werden.From Ambari REST API: Use the command curl -u admin -G "https:\//CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/STORM/components/STORM_UI_SERVER" to retrieve information about the node that the Storm UI and REST API are running on. Ersetzen Sie CLUSTERNAME durch den Namen des Clusters.Replace CLUSTERNAME with the cluster name. Geben Sie bei entsprechender Aufforderung das Kennwort des Anmeldekontos (Administrator) ein.When prompted, enter the password for the login (admin) account. In der Antwort enthält der Eintrag „host_name“ den vollqualifizierten Domänennamen des Knotens.In the response, the "host_name" entry contains the FQDN of the node.

AuthenticationAuthentication

Anforderungen an die REST-API müssen die Standardauthentifizierungund somit den Benutzernamen und das Kennwort des HDInsight-Clusteradministrators verwenden.Requests to the REST API must use basic authentication, so you use the HDInsight cluster administrator name and password.

Hinweis

Da die Standardauthentifizierung unverschlüsselt gesendet wird, sollten Sie immer HTTPS verwenden, um die Kommunikation mit dem Cluster zu schützen.Because basic authentication is sent by using clear text, you should always use HTTPS to secure communications with the cluster.

RückgabewerteReturn values

Informationen, die von der REST-API zurückgegeben werden, sind möglicherweise nur innerhalb des Clusters verwendbar.Information that is returned from the REST API may only be usable from within the cluster. Auf den für Apache ZooKeeper-Server zurückgegebenen vollqualifizierten Domänennamen (FQDN) kann zum Beispiel nicht über das Internet zugegriffen werden.For example, the fully qualified domain name (FQDN) returned for Apache ZooKeeper servers is not accessible from the Internet.

Nächste SchritteNext Steps

Lernen Sie mehr über das Entwickeln Java-basierter Topologien mit Apache Maven.Learn how to Develop Java-based topologies using Apache Maven.

Weitere Beispieltopologien finden Sie unter Beispieltopologien für Apache Storm in HDInsight.For a list of more example topologies, see Example topologies for Apache Storm on HDInsight.