Apache Storm-topologieën op Azure HDInsight implementeren en beherenDeploy and manage Apache Storm topologies on Azure HDInsight

In dit document leert de basisbeginselen van het beheren en controleren van Apache Storm topologieën voor Storm op HDInsight-clusters waarop.In this document, learn the basics of managing and monitoring Apache Storm topologies running on Storm on HDInsight clusters.

VereistenPrerequisites

Indienen van een topologie: Visual StudioSubmit a topology: Visual Studio

De HDInsight-hulpprogramma's kan worden gebruikt om in te dienen C# of hybride topologieën met uw Storm-cluster.The HDInsight Tools can be used to submit C# or hybrid topologies to your Storm cluster. De volgende stappen gebruikt een voorbeeld van toepassing.The following steps use a sample application. Zie voor meer informatie over het maken van over het gebruik van de hulpprogramma's voor HDInsight C#-topologieën ontwikkelen met de HDInsight Tools voor Visual Studio.For information about creating on using the HDInsight Tools, see Develop C# topologies using the HDInsight Tools for Visual Studio.

  1. Als u de meest recente versie van de Data Lake-hulpprogramma's zijn niet voor Visual Studio hebt geïnstalleerd, raadpleegt u aan de slag met Data Lake Tools voor 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.

    Notitie

    De Data Lake Tools voor Visual Studio werden voorheen de HDInsight-hulpprogramma's voor Visual Studio.The Data Lake Tools for Visual Studio were formerly called the HDInsight Tools for Visual Studio.

    Data Lake Tools voor Visual Studio zijn opgenomen in de Azure Workload voor Visual Studio 2017.Data Lake Tools for Visual Studio are included in the Azure Workload for Visual Studio 2017.

  2. Open Visual Studio, selecteer bestand > nieuw > Project.Open Visual Studio, select File > New > Project.

  3. In de nieuw Project dialoogvenster Vouw geïnstalleerde > sjablonen, en selecteer vervolgens HDInsight.In the New Project dialog box, expand Installed > Templates, and then select HDInsight. Selecteer in de lijst met sjablonen Storm voorbeeld.From the list of templates, select Storm Sample. Typ een naam voor de toepassing aan de onderkant van het dialoogvenster.At the bottom of the dialog box, type a name for the application.

    image

  4. In Solution Explorer, met de rechtermuisknop op het project en selecteer indienen bij Storm op HDInsight.In Solution Explorer, right-click the project, and select Submit to Storm on HDInsight.

    Notitie

    Als u hierom wordt gevraagd, voert u de aanmeldingsreferenties voor uw Azure-abonnement.If prompted, enter the login credentials for your Azure subscription. Als u meer dan één abonnement hebt, moet u zich aanmelden bij de optie die uw Storm op HDInsight-cluster bevat.If you have more than one subscription, log in to the one that contains your Storm on HDInsight cluster.

  5. Selecteer uw Storm op HDInsight-cluster op basis van de Storm-Cluster vervolgkeuzelijst en selecteer vervolgens indienen.Select your Storm on HDInsight cluster from the Storm Cluster drop-down list, and then select Submit. U kunt controleren of het verzenden voltooid met behulp van is de uitvoer venster.You can monitor whether the submission is successful by using the Output window.

Indienen van een topologie: SSH en de Storm-opdrachtSubmit a topology: SSH and the Storm command

  1. Gebruik SSH verbinding maken met de HDInsight-cluster.Use SSH to connect to the HDInsight cluster. Vervang gebruikersnaam de naam van uw SSH-aanmelding.Replace USERNAME the name of your SSH login. Vervang CLUSTERNAME met de naam van uw HDInsight-cluster:Replace CLUSTERNAME with your HDInsight cluster name:

     ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net
    

    Zie voor meer informatie over het gebruik van SSH verbinding maken met uw HDInsight-cluster SSH gebruiken met HDInsight.For more information on using SSH to connect to your HDInsight cluster, see Use SSH with HDInsight.

  2. Gebruik de volgende opdracht om een voorbeeldtopologie te starten: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
    

    Met deze opdracht wordt de WordCount-voorbeeldtopologie gestart op het cluster.This command starts the example WordCount topology on the cluster. Deze topologie genereert willekeurig zinnen en telt vervolgens het exemplaar van elk woord in de zinnen.This topology randomly generates sentences, and then counts the occurrence of each word in the sentences.

    Notitie

    Bij het indienen van de topologie bij het cluster moet u eerst het jar-bestand met het cluster kopiëren voordat u de opdracht storm gebruikt.When submitting topology to the cluster, you must first copy the jar file containing the cluster before using the storm command. Als u wilt kopiëren van het bestand aan het cluster, kunt u de scp opdracht.To copy the file to the cluster, you can use the scp command. Bijvoorbeeld: scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jarFor example, scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jar

    Het WordCount-voorbeeld en andere Storm Starter-voorbeelden zijn al in uw cluster opgenomen in /usr/hdp/current/storm-client/contrib/storm-starter/.The WordCount example, and other storm starter examples, are already included on your cluster at /usr/hdp/current/storm-client/contrib/storm-starter/.

Indienen van een topologie: via een programmaSubmit a topology: programmatically

U kunt een topologie met behulp van het Nimbus-service programmatisch implementeren.You can programmatically deploy a topology using the Nimbus service. https://github.com/Azure-Samples/hdinsight-java-deploy-storm-topology Geeft een voorbeeld Java-toepassing die u laat zien hoe u kunt implementeren en starten van een topologie via het Nimbus-service.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.

Controleren en beheren: Visual StudioMonitor and manage: Visual Studio

Wanneer een topologie wordt verzonden met behulp van Visual Studio, de Storm-topologieën weergegeven.When a topology is submitted using Visual Studio, the Storm Topologies view appears. Selecteer de topologie in de lijst om informatie over de actieve topologie weer te geven.Select the topology from the list to view information about the running topology.

monitor voor Visual studio

Notitie

U kunt ook weergeven Storm-topologieën van Server Explorer door uit te vouwen Azure > HDInsight, en vervolgens met de rechtermuisknop op een Storm op HDInsight-cluster en het selecteren van Zobrazit topologie Stormu.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.

Selecteer de shape voor de spouts of bolts om informatie over deze onderdelen weer te geven.Select the shape for the spouts or bolts to view information about these components. Er wordt een nieuw venster geopend voor elk item geselecteerd.A new window opens for each item selected.

Deactiveren en opnieuw activerenDeactivate and reactivate

Het deactiveren van een topologie wordt onderbroken deze totdat deze wordt afgesloten of opnieuw geactiveerd.Deactivating a topology pauses it until it is killed or reactivated. Als u wilt deze bewerkingen wilt uitvoeren, gebruiken de deactiveren en opnieuw activeren knoppen aan de bovenkant van de Topology Summary.To perform these operations, use the Deactivate and Reactivate buttons at the top of the Topology Summary.

Opnieuw verdelenRebalance

Herverdeling van een topologie, kan het systeem voor het bijwerken van de parallelle uitvoering van de topologie.Rebalancing a topology allows the system to revise the parallelism of the topology. Als u het cluster om toe te voegen meer notities hebt uitgebreid, kan opnieuw verdelen bijvoorbeeld een topologie om te zien van de nieuwe knooppunten.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Als u wilt opnieuw verdelen een topologie, gebruikt u de opnieuw verdelen knop aan de bovenkant van de Topology Summary.To rebalance a topology, use the Rebalance button at the top of the Topology Summary.

Waarschuwing

Eerst een topologie herverdeling deactiveert u de topologie gelijkmatig herdistribueert u werknemers in het cluster vervolgens, tot slot wordt de topologie naar de status was voordat de herverdeling is opgetreden.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. Dus als de topologie actief was, wordt het actieve opnieuw.So if the topology was active, it becomes active again. Als deze is gedeactiveerd, blijft het gedeactiveerd.If it was deactivated, it remains deactivated.

Een topologie killKill a topology

Storm-topologieën blijven uitvoeren totdat ze zijn gestopt of het cluster wordt verwijderd.Storm topologies continue running until they are stopped or the cluster is deleted. Als u wilt een topologie stoppen, gebruikt u de Kill knop aan de bovenkant van de Topology Summary.To stop a topology, use the Kill button at the top of the Topology Summary.

Controleren en beheren: SSH en de Storm-opdrachtMonitor and manage: SSH and the Storm command

De storm hulpprogramma kunt u werken met actieve topologieën vanaf de opdrachtregel.The storm utility allows you to work with running topologies from the command line. Gebruik storm -h voor een volledige lijst met opdrachten.Use storm -h for a full list of commands.

Lijst met topologieënList topologies

Gebruik de volgende opdracht om een lijst van alle actieve topologieën:Use the following command to list all running topologies:

storm list

Met deze opdracht wordt informatie geretourneerd die lijkt op de volgende tekst:This command returns information similar to the following text:

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

Deactiveren en opnieuw activerenDeactivate and reactivate

Het deactiveren van een topologie wordt onderbroken deze totdat deze wordt afgesloten of opnieuw geactiveerd.Deactivating a topology pauses it until it is killed or reactivated. Gebruik de volgende opdracht uit om te deactiveren en opnieuw activeren:Use the following command to deactivate and reactivate:

storm Deactivate TOPOLOGYNAME

storm Activate TOPOLOGYNAME

Een actieve topologie killKill a running topology

Storm-topologieën, één keer wordt gestart, gaat u verder uitgevoerd totdat deze wordt gestopt.Storm topologies, once started, continue running until stopped. Als u wilt een topologie stoppen, gebruikt u de volgende opdracht uit:To stop a topology, use the following command:

storm kill TOPOLOGYNAME

Opnieuw verdelenRebalance

Herverdeling van een topologie, kan het systeem voor het bijwerken van de parallelle uitvoering van de topologie.Rebalancing a topology allows the system to revise the parallelism of the topology. Als u het cluster om toe te voegen meer notities hebt uitgebreid, kan opnieuw verdelen bijvoorbeeld een topologie om te zien van de nieuwe knooppunten.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Waarschuwing

Eerst een topologie herverdeling deactiveert u de topologie gelijkmatig herdistribueert u werknemers in het cluster vervolgens, tot slot wordt de topologie naar de status was voordat de herverdeling is opgetreden.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. Dus als de topologie actief was, wordt het actieve opnieuw.So if the topology was active, it becomes active again. Als deze is gedeactiveerd, blijft het gedeactiveerd.If it was deactivated, it remains deactivated.

storm rebalance TOPOLOGYNAME

Controleren en beheren: Storm-gebruikersinterfaceMonitor and manage: Storm UI

De Storm-gebruikersinterface biedt een webinterface voor het werken met actieve topologieën en is opgenomen in uw HDInsight-cluster.The Storm UI provides a web interface for working with running topologies, and is included on your HDInsight cluster. Als u de Storm-gebruikersinterface, gebruikt u een webbrowser openen https://CLUSTERNAME.azurehdinsight.net/stormui , waarbij CLUSTERNAME is de naam van uw cluster.To view the Storm UI, use a web browser to open https://CLUSTERNAME.azurehdinsight.net/stormui, where CLUSTERNAME is the name of your cluster.

Notitie

Als u wordt gevraagd een gebruikersnaam en een wachtwoord op te geven, voert u de gegevens voor de clusterbeheerder (admin) en het wachtwoord in die u hebt gebruikt toen u het cluster maakte.If asked to provide a user name and password, enter the cluster administrator (admin) and password that you used when creating the cluster.

HoofdpaginaMain page

De startpagina van de Storm-gebruikersinterface biedt de volgende informatie:The main page of the Storm UI provides the following information:

  • Samenvatting voor cluster: Algemene informatie over de Storm-cluster.Cluster summary: Basic information about the Storm cluster.
  • Topologie samenvatting: Een lijst met actieve topologieën.Topology summary: A list of running topologies. Gebruik de koppelingen in deze sectie om meer informatie over specifieke topologieën weer te geven.Use the links in this section to view more information about specific topologies.
  • Samenvatting supervisor: Informatie over de supervisor Storm.Supervisor summary: Information about the Storm supervisor.
  • Nimbus-configuratie: Nimbus-configuratie van het cluster.Nimbus configuration: Nimbus configuration for the cluster.

Topologie samenvattingTopology summary

Selecteren van een koppeling van de Topology summary sectie vindt u de volgende informatie over de topologie:Selecting a link from the Topology summary section displays the following information about the topology:

  • Topologie samenvatting: Algemene informatie over de topologie.Topology summary: Basic information about the topology.

  • Topologie acties: Beheeracties die u voor de topologie uitvoeren kunt.Topology actions: Management actions that you can perform for the topology.

    • Activeren: Hervat de verwerking van een gedeactiveerde topologie.Activate: Resumes processing of a deactivated topology.

    • Deactiveren: Een actieve topologie wordt onderbroken.Deactivate: Pauses a running topology.

    • Rebalance: Hiermee past u de parallelle uitvoering van de topologie.Rebalance: Adjusts the parallelism of the topology. Nadat u het aantal knooppunten in het cluster hebt gewijzigd, moet u actieve topologieën opnieuw verdelen.You should rebalance running topologies after you have changed the number of nodes in the cluster. Met deze bewerking kunt de topologie aangepast aan parallelle uitvoering om te compenseren voor het grotere of kleinere aantal knooppunten in het cluster.This operation allows the topology to adjust parallelism to compensate for the increased or decreased number of nodes in the cluster.

      Zie voor meer informatie, inzicht in de parallelle uitvoering van een Apache Storm-topologie.For more information, see Understanding the parallelism of an Apache Storm topology.

    • Kill: Een Storm-topologie beëindigd na de opgegeven time-out.Kill: Terminates a Storm topology after the specified timeout.

  • Topology stats: Statistieken over de topologie.Topology stats: Statistics about the topology. Om in te stellen het tijdsbestek voor de overige items op de pagina, gebruik de koppelingen in de venster kolom.To set the timeframe for the remaining entries on the page, use the links in the Window column.

  • Spouts: De spouts die worden gebruikt door de topologie.Spouts: The spouts used by the topology. Gebruik de koppelingen in deze sectie om meer informatie over specifieke spouts weer te geven.Use the links in this section to view more information about specific spouts.

  • Bolts: De bolts die worden gebruikt door de topologie.Bolts: The bolts used by the topology. Gebruik de koppelingen in deze sectie voor meer informatie over specifieke bolts.Use the links in this section to view more information about specific bolts.

  • Topologieconfiguratie: De configuratie van de geselecteerde topologie.Topology configuration: The configuration of the selected topology.

Spout en Bolt-overzichtSpout and Bolt summary

Selecteren van een spout uit de Spouts of Bolts secties bevat de volgende informatie over het geselecteerde item:Selecting a spout from the Spouts or Bolts sections displays the following information about the selected item:

  • Overzicht van onderdelen: Algemene informatie over de spout of bolt.Component summary: Basic information about the spout or bolt.
  • Spout/Bolt stats: Statistieken over de spout of bolt.Spout/Bolt stats: Statistics about the spout or bolt. Om in te stellen het tijdsbestek voor de overige items op de pagina, gebruik de koppelingen in de venster kolom.To set the timeframe for the remaining entries on the page, use the links in the Window column.
  • Input stats (alleen Bolts): Informatie over de invoer stromen die worden gebruikt door de bolt.Input stats (bolt only): Information about the input streams consumed by the bolt.
  • Output stats: Informatie over de stromen die door de spout of bolt.Output stats: Information about the streams emitted by the spout or bolt.
  • Executor: Informatie over de exemplaren van een spout of bolt.Executors: Information about the instances of the spout or bolt. Selecteer de poort vermelding voor een specifieke executor om een logboek van diagnostische gegevens weer te geven die wordt geproduceerd voor dit exemplaar.Select the Port entry for a specific executor to view a log of diagnostic information produced for this instance.
  • Fouten: Foutgegevens voor de spout of bolt.Errors: Any error information for the spout or bolt.

Controleren en beheren: REST-APIMonitor and manage: REST API

De Storm-gebruikersinterface is gebaseerd op de REST-API, zodat u soortgelijke beheer en controle van functies met behulp van de REST-API kunt uitvoeren.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. De REST-API kunt u aangepaste hulpprogramma's voor het beheren en controleren van Storm-topologieën maken.You can use the REST API to create custom tools for managing and monitoring Storm topologies.

Zie voor meer informatie, REST-API voor Apache Storm-gebruikersinterface.For more information, see Apache Storm UI REST API. De volgende informatie is specifiek voor de REST-API gebruiken met Apache Storm op HDInsight.The following information is specific to using the REST API with Apache Storm on HDInsight.

Belangrijk

De Storm-REST-API is niet openbaar beschikbaar via het internet, en moeten worden geopend via een SSH-tunnel naar het hoofdknooppunt van HDInsight-cluster.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. Zie voor meer informatie over het maken en gebruiken van een SSH-tunnel SSH-Tunneling gebruiken voor toegang tot de Apache Ambari-Webgebruikersinterface, ResourceManager JobHistory, NameNode, Apache Oozie en andere webgebruikersinterfaces.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

De basis-URI voor de REST-API op Linux gebaseerde HDInsight-clusters is beschikbaar op het hoofdknooppunt op https://HEADNODEFQDN:8744/api/v1/ .The base URI for the REST API on Linux-based HDInsight clusters is available on the head node at https://HEADNODEFQDN:8744/api/v1/. De domeinnaam van het hoofdknooppunt is gegenereerd tijdens het maken van clusters en is niet statisch.The domain name of the head node is generated during cluster creation and is not static.

U vindt de volledig gekwalificeerde domeinnaam (FQDN) voor het hoofdknooppunt van het cluster op verschillende manieren:You can find the fully qualified domain name (FQDN) for the cluster head node in several different ways:

  • Vanuit een SSH-sessie: Gebruik de opdracht headnode -f van een SSH-sessie met het cluster.From an SSH session: Use the command headnode -f from an SSH session to the cluster.
  • From Ambari Web: Selecteer Services vanaf de bovenkant van de pagina, selecteert u vervolgens Storm.From Ambari Web: Select Services from the top of the page, then select Storm. Uit de samenvatting tabblad Storm UI Server.From the Summary tab, select Storm UI Server. De FQDN-naam van het knooppunt dat als host fungeert voor de Storm-gebruikersinterface en de REST-API wordt weergegeven boven aan de pagina.The FQDN of the node that hosts the Storm UI and REST API is displayed at the top of the page.
  • From Ambari REST API: Gebruik de opdracht curl -u admin -G "https:\//CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/STORM/components/STORM_UI_SERVER" informatie ophalen over het knooppunt dat de Storm-gebruikersinterface en de REST-API op worden uitgevoerd.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. Vervang CLUSTERNAME met de naam van het cluster.Replace CLUSTERNAME with the cluster name. Wanneer u hierom wordt gevraagd, voert u het wachtwoord voor het aanmeldingswachtwoord (beheerder)-account.When prompted, enter the password for the login (admin) account. In het antwoord bevat de vermelding 'hostnaam' de FQDN-naam van het knooppunt.In the response, the "host_name" entry contains the FQDN of the node.

VerificatieAuthentication

Aanvragen voor de REST-API moeten gebruiken basisverificatie, zodat u de beheerder de naam van HDInsight-cluster en het wachtwoord gebruiken.Requests to the REST API must use basic authentication, so you use the HDInsight cluster administrator name and password.

Notitie

Omdat basisverificatie wordt verzonden met behulp van niet-versleutelde tekst, moet u altijd HTTPS gebruikt voor het beveiligen van communicatie met het cluster.Because basic authentication is sent by using clear text, you should always use HTTPS to secure communications with the cluster.

RetourwaardenReturn values

Informatie die wordt geretourneerd vanaf de REST-API kan alleen worden gebruikt in binnen het cluster.Information that is returned from the REST API may only be usable from within the cluster. Bijvoorbeeld, de volledig gekwalificeerde domeinnaam (FQDN) geretourneerd voor Apache ZooKeeper servers is niet toegankelijk vanaf Internet.For example, the fully qualified domain name (FQDN) returned for Apache ZooKeeper servers is not accessible from the Internet.

Volgende stappenNext Steps

Meer informatie over het ontwikkelen op Java gebaseerde topologieën met behulp van Apache Maven.Learn how to Develop Java-based topologies using Apache Maven.

Zie voor een lijst van meer voorbeeldtopologieën, voorbeeldtopologieën van Apache Storm op HDInsight.For a list of more example topologies, see Example topologies for Apache Storm on HDInsight.