Wdrażanie topologii Apache Storm w usłudze Azure HDInsight i zarządzanie nimiDeploy and manage Apache Storm topologies on Azure HDInsight

W tym dokumencie przedstawiono podstawowe informacje dotyczące zarządzania i monitorowania topologii Apache Storm działających w ramach burzy w klastrach usługi HDInsight.In this document, learn the basics of managing and monitoring Apache Storm topologies running on Storm on HDInsight clusters.

Wymagania wstępnePrerequisites

Przesyłanie topologii: Visual StudioSubmit a topology: Visual Studio

Narzędzia usługi HDInsight mogą służyć do przesyłania C# lub topologii hybrydowej do klastra burzy.The HDInsight Tools can be used to submit C# or hybrid topologies to your Storm cluster. W poniższych krokach użyto przykładowej aplikacji.The following steps use a sample application. Aby uzyskać informacje na temat tworzenia przy użyciu narzędzi HDInsight, Zobacz C# tworzenie topologii przy użyciu narzędzi HDInsight Tools for Visual Studio.For information about creating on using the HDInsight Tools, see Develop C# topologies using the HDInsight Tools for Visual Studio.

  1. Jeśli nie zainstalowano jeszcze najnowszej wersji narzędzi Data Lake Tools for Visual Studio, zobacz Rozpoczynanie pracy przy użyciu narzędzi Data Lake Tools for 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.

    Uwaga

    Narzędzia Data Lake Tools for Visual Studio były wcześniej nazywane narzędziami HDInsight Tools for Visual Studio.The Data Lake Tools for Visual Studio were formerly called the HDInsight Tools for Visual Studio.

    Narzędzia Data Lake Tools for Visual Studio są zawarte w obciążeniu platformy Azure dla programu visual Studio 2017.Data Lake Tools for Visual Studio are included in the Azure Workload for Visual Studio 2017.

  2. Otwórz program Visual Studio, wybierz pozycję plik > Nowy > projekt.Open Visual Studio, select File > New > Project.

  3. W oknie dialogowym Nowy projekt rozwiń węzeł zainstalowane > Szablony, a następnie wybierz pozycję HDInsight.In the New Project dialog box, expand Installed > Templates, and then select HDInsight. Z listy szablonów wybierz pozycję przykład burzy.From the list of templates, select Storm Sample. W dolnej części okna dialogowego wpisz nazwę aplikacji.At the bottom of the dialog box, type a name for the application.

    image

  4. W Eksplorator rozwiązańkliknij prawym przyciskiem myszy projekt, a następnie wybierz pozycję Prześlij do burzy w usłudze HDInsight.In Solution Explorer, right-click the project, and select Submit to Storm on HDInsight.

    Uwaga

    Jeśli zostanie wyświetlony monit, wprowadź poświadczenia logowania dla subskrypcji platformy Azure.If prompted, enter the login credentials for your Azure subscription. Jeśli masz więcej niż jedną subskrypcję, zaloguj się do niej, która zawiera swoją burzę w klastrze usługi HDInsight.If you have more than one subscription, log in to the one that contains your Storm on HDInsight cluster.

  5. Wybierz pozycję burza w klastrze usługi HDInsight z listy rozwijanej klaster burzy , a następnie wybierz pozycję Prześlij.Select your Storm on HDInsight cluster from the Storm Cluster drop-down list, and then select Submit. Możesz monitorować, czy przesyłanie zakończy się pomyślnie przy użyciu okna danych wyjściowych .You can monitor whether the submission is successful by using the Output window.

Przesyłanie topologii: SSH i burza — polecenieSubmit a topology: SSH and the Storm command

  1. Połącz się z klastrem usługi HDInsight przy użyciu protokołu SSH.Use SSH to connect to the HDInsight cluster. Zastąp nazwę username nazwą logowania SSH.Replace USERNAME the name of your SSH login. Zastąp ciąg ClusterName nazwą klastra usługi HDInsight:Replace CLUSTERNAME with your HDInsight cluster name:

     ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net
    

    Aby uzyskać więcej informacji na temat łączenia się z klastrem usługi HDInsight przy użyciu protokołu SSH, zobacz Używanie protokołu SSH z usługą HDInsight.For more information on using SSH to connect to your HDInsight cluster, see Use SSH with HDInsight.

  2. Użyj następującego polecenia, aby uruchomić przykładową topologię: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
    

    To polecenie uruchamia w klastrze przykładową topologię WordCount.This command starts the example WordCount topology on the cluster. Ta topologia losowo generuje zdania, a następnie zlicza wystąpienia każdego wyrazu w zdaniach.This topology randomly generates sentences, and then counts the occurrence of each word in the sentences.

    Uwaga

    Podczas przesyłania topologii do klastra przed użyciem polecenia storm należy skopiować plik JAR zawierający klaster.When submitting topology to the cluster, you must first copy the jar file containing the cluster before using the storm command. Aby skopiować plik do klastra, można użyć scp polecenia.To copy the file to the cluster, you can use the scp command. Na przykład: scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jarFor example, scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jar

    Przykład WordCount i inne przykłady z projektu Storm Starter znajdują się już w klastrze w lokalizacji /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/.

Przesyłanie topologii: programoweSubmit a topology: programmatically

Można programowo wdrożyć topologię przy użyciu usługi Nimbus.You can programmatically deploy a topology using the Nimbus service. https://github.com/Azure-Samples/hdinsight-java-deploy-storm-topologyzawiera przykładową aplikację Java, która demonstruje sposób wdrażania i uruchamiania topologii za pomocą usługi Nimbus.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.

Monitorowanie i zarządzanie: Visual StudioMonitor and manage: Visual Studio

Gdy topologia zostanie przesłana przy użyciu programu Visual Studio, zostanie wyświetlony widok topologie burzy .When a topology is submitted using Visual Studio, the Storm Topologies view appears. Wybierz topologię z listy, aby wyświetlić informacje o uruchomionej topologii.Select the topology from the list to view information about the running topology.

Monitor programu Visual Studio

Uwaga

Można również wyświetlić topologie burzy w Eksplorator serwera , rozszerzając usługę Azure > HDInsight, a następnie klikając prawym przyciskiem myszy burzę w klastrze usługi HDInsight i wybierając pozycję Wyświetl topologie burzy.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.

Wybierz kształt elementy Spout lub piorunów, aby wyświetlić informacje o tych składnikach.Select the shape for the spouts or bolts to view information about these components. Zostanie otwarte nowe okno dla każdego wybranego elementu.A new window opens for each item selected.

Dezaktywuj i aktywuj ponownieDeactivate and reactivate

Dezaktywacja topologii wstrzymuje ją do momentu jego zabicia lub ponownej aktywacji.Deactivating a topology pauses it until it is killed or reactivated. Aby wykonać te operacje, użyj przycisków Dezaktywuj i Uaktywnij ponownie w górnej części podsumowania topologii.To perform these operations, use the Deactivate and Reactivate buttons at the top of the Topology Summary.

Zbilansuj ponownieRebalance

Ponowne równoważenie topologii umożliwia systemowi skorygowanie równoległości topologii.Rebalancing a topology allows the system to revise the parallelism of the topology. Na przykład jeśli Zmieniono rozmiar klastra w celu dodania kolejnych notatek, ponowne zrównoważenie umożliwia topologii wyświetlanie nowych węzłów.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Aby ponownie zrównoważyć topologię, użyj przycisku Zrównoważ w górnej części podsumowania topologii.To rebalance a topology, use the Rebalance button at the top of the Topology Summary.

Ostrzeżenie

Ponowne równoważenie topologii najpierw dezaktywuje topologię, a następnie ponownie dystrybuuje procesy robocze w klastrze, a następnie zwraca topologię do stanu, w którym znajdowała się przed ponownym zrównoważeniem.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. Tak więc, jeśli topologia była aktywna, zostanie ponownie uaktywniona.So if the topology was active, it becomes active again. Jeśli została zdezaktywowana, pozostanie zdezaktywowana.If it was deactivated, it remains deactivated.

Kasuj topologięKill a topology

Topologie burzy są nadal uruchomione, dopóki nie zostaną zatrzymane lub klaster zostanie usunięty.Storm topologies continue running until they are stopped or the cluster is deleted. Aby zatrzymać topologię, użyj przycisku zabicia w górnej części podsumowania topologii.To stop a topology, use the Kill button at the top of the Topology Summary.

Monitorowanie i zarządzanie: SSH i burza — polecenieMonitor and manage: SSH and the Storm command

storm Narzędzie pozwala pracować z uruchamianiem topologii z poziomu wiersza polecenia.The storm utility allows you to work with running topologies from the command line. Użyj storm -h , aby uzyskać pełną listę poleceń.Use storm -h for a full list of commands.

Wyświetl topologieList topologies

Użyj następującego polecenia, aby wyświetlić listę wszystkich uruchomionych topologii:Use the following command to list all running topologies:

storm list

To polecenie zwraca informacje podobne do następującego tekstu:This command returns information similar to the following text:

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

Dezaktywuj i aktywuj ponownieDeactivate and reactivate

Dezaktywacja topologii wstrzymuje ją do momentu jego zabicia lub ponownej aktywacji.Deactivating a topology pauses it until it is killed or reactivated. Użyj następującego polecenia, aby dezaktywować i ponownie aktywować:Use the following command to deactivate and reactivate:

storm Deactivate TOPOLOGYNAME

storm Activate TOPOLOGYNAME

Kasuj uruchomioną topologięKill a running topology

Topologie burzy, po uruchomieniu, kontynuują działanie do momentu zatrzymania.Storm topologies, once started, continue running until stopped. Aby zatrzymać topologię, użyj następującego polecenia:To stop a topology, use the following command:

storm kill TOPOLOGYNAME

Zbilansuj ponownieRebalance

Ponowne równoważenie topologii umożliwia systemowi skorygowanie równoległości topologii.Rebalancing a topology allows the system to revise the parallelism of the topology. Na przykład jeśli Zmieniono rozmiar klastra w celu dodania kolejnych notatek, ponowne zrównoważenie umożliwia topologii wyświetlanie nowych węzłów.For example, if you have resized the cluster to add more notes, rebalancing allows a topology to see the new nodes.

Ostrzeżenie

Ponowne równoważenie topologii najpierw dezaktywuje topologię, a następnie ponownie dystrybuuje procesy robocze w klastrze, a następnie zwraca topologię do stanu, w którym znajdowała się przed ponownym zrównoważeniem.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. Tak więc, jeśli topologia była aktywna, zostanie ponownie uaktywniona.So if the topology was active, it becomes active again. Jeśli została zdezaktywowana, pozostanie zdezaktywowana.If it was deactivated, it remains deactivated.

storm rebalance TOPOLOGYNAME

Monitorowanie i zarządzanie: Interfejs użytkownika burzyMonitor and manage: Storm UI

Interfejs użytkownika platformy Storm udostępnia interfejs sieci Web do pracy z uruchomionymi topologiami i jest zawarty w klastrze usługi HDInsight.The Storm UI provides a web interface for working with running topologies, and is included on your HDInsight cluster. Aby wyświetlić interfejs użytkownika burzy, użyj przeglądarki https://CLUSTERNAME.azurehdinsight.net/stormui sieci Web, gdzie ClusterName jest nazwą klastra.To view the Storm UI, use a web browser to open https://CLUSTERNAME.azurehdinsight.net/stormui, where CLUSTERNAME is the name of your cluster.

Uwaga

Jeśli zostanie wyświetlony monit o podanie nazwy użytkownika i hasła, wprowadź nazwę administratora klastra (admin) i hasło użyte podczas tworzenia klastra.If asked to provide a user name and password, enter the cluster administrator (admin) and password that you used when creating the cluster.

Strona głównaMain page

Na stronie głównej interfejsu użytkownika burzy są dostępne następujące informacje:The main page of the Storm UI provides the following information:

  • Podsumowanie klastra: Podstawowe informacje o klastrze burzowym.Cluster summary: Basic information about the Storm cluster.
  • Podsumowanie topologii: Lista uruchomionych topologii.Topology summary: A list of running topologies. Skorzystaj z linków w tej sekcji, aby wyświetlić więcej informacji na temat określonych topologii.Use the links in this section to view more information about specific topologies.
  • Podsumowanie opiekuna: Informacje o Inspektorze burzy.Supervisor summary: Information about the Storm supervisor.
  • Konfiguracja Nimbus: Nimbus konfigurację klastra.Nimbus configuration: Nimbus configuration for the cluster.

Podsumowanie topologiiTopology summary

Wybranie linku z sekcji Podsumowanie topologii zawiera następujące informacje o topologii:Selecting a link from the Topology summary section displays the following information about the topology:

  • Podsumowanie topologii: Podstawowe informacje o topologii.Topology summary: Basic information about the topology.

  • Akcje topologii: Akcje zarządzania, które można wykonać dla topologii.Topology actions: Management actions that you can perform for the topology.

    • Aktywuj: Wznawia przetwarzanie zdezaktywowanej topologii.Activate: Resumes processing of a deactivated topology.

    • Dezaktywuj: Wstrzymuje uruchomioną topologię.Deactivate: Pauses a running topology.

    • Ponowne równoważenie: Dostosowuje równoległość topologii.Rebalance: Adjusts the parallelism of the topology. Po zmianie liczby węzłów w klastrze należy przeprowadzić ponowne równoważenie uruchomionych topologii.You should rebalance running topologies after you have changed the number of nodes in the cluster. Ta operacja umożliwia topologii dostosowanie równoległości w celu zrekompensowania zwiększonej lub zmniejszonej liczby węzłów w klastrze.This operation allows the topology to adjust parallelism to compensate for the increased or decreased number of nodes in the cluster.

      Aby uzyskać więcej informacji, zobacz Omówienie równoległości topologii Apache Storm.For more information, see Understanding the parallelism of an Apache Storm topology.

    • Kasuj: Kończy topologię burzy po określonym limicie czasu.Kill: Terminates a Storm topology after the specified timeout.

  • Statystyka topologii: Statystyka topologii.Topology stats: Statistics about the topology. Aby ustawić ramy czasowe dla pozostałych wpisów na stronie, użyj linków w kolumnie okno .To set the timeframe for the remaining entries on the page, use the links in the Window column.

  • Elementy Spout: Elementy Spout używany przez topologię.Spouts: The spouts used by the topology. Skorzystaj z linków w tej sekcji, aby wyświetlić więcej informacji na temat określonych elementy Spout.Use the links in this section to view more information about specific spouts.

  • Pioruny: Pioruny używane przez topologię.Bolts: The bolts used by the topology. Skorzystaj z linków w tej sekcji, aby wyświetlić więcej informacji na temat określonych piorunów.Use the links in this section to view more information about specific bolts.

  • Konfiguracja topologii: Konfiguracja wybranej topologii.Topology configuration: The configuration of the selected topology.

Elementu Spout i piorun — podsumowanieSpout and Bolt summary

Wybranie elementu Spout z sekcji elementy Spout lub pioruns wyświetla następujące informacje dotyczące wybranego elementu:Selecting a spout from the Spouts or Bolts sections displays the following information about the selected item:

  • Podsumowanie składnika: Podstawowe informacje na temat elementu Spout lub pioruna.Component summary: Basic information about the spout or bolt.
  • Statystyka elementu Spout/piorun: Statystyka elementu Spout lub pioruna.Spout/Bolt stats: Statistics about the spout or bolt. Aby ustawić ramy czasowe dla pozostałych wpisów na stronie, użyj linków w kolumnie okno .To set the timeframe for the remaining entries on the page, use the links in the Window column.
  • Statystyki wejściowe (tylko Piorun): Informacje o strumieniach wejściowych używanych przez pioruna.Input stats (bolt only): Information about the input streams consumed by the bolt.
  • Statystyka wyjściowa: Informacje o strumieniach emitowanych przez elementu Spout lub piorun.Output stats: Information about the streams emitted by the spout or bolt.
  • Wykonawcy: Informacje o wystąpieniach elementu Spout lub piorunów.Executors: Information about the instances of the spout or bolt. Wybierz wpis portu dla określonego wykonawcy, aby wyświetlić dziennik informacji diagnostycznych tworzonych dla tego wystąpienia.Select the Port entry for a specific executor to view a log of diagnostic information produced for this instance.
  • Błędy: Wszystkie informacje o błędzie dla elementu Spout lub pioruna.Errors: Any error information for the spout or bolt.

Monitorowanie i zarządzanie: Interfejs API RESTMonitor and manage: REST API

Interfejs użytkownika burzy jest oparty na interfejsie API REST, dzięki czemu można wykonywać podobne funkcje zarządzania i monitorowania za pomocą interfejsu API REST.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. Interfejsu API REST można użyć do tworzenia niestandardowych narzędzi do zarządzania i monitorowania topologii burzy.You can use the REST API to create custom tools for managing and monitoring Storm topologies.

Aby uzyskać więcej informacji, zobacz Interfejs API REST interfejsu użytkownika Apache Storm.For more information, see Apache Storm UI REST API. Poniższe informacje dotyczą korzystania z interfejsu API REST z usługą Apache Storm w usłudze HDInsight.The following information is specific to using the REST API with Apache Storm on HDInsight.

Ważne

Interfejs API REST burzy nie jest publicznie dostępny przez Internet i musi być dostępny przy użyciu tunelu SSH do węzła głównego klastra usługi HDInsight.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. Aby uzyskać informacje na temat tworzenia i używania tunelu SSH, zobacz Używanie tunelowania SSH do uzyskiwania dostępu do interfejsu użytkownika usługi Apache Ambari Web, ResourceManager, JobHistory, NameNode, Apache Oozie i innych interfejsów użytkownika sieci Web.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.

Podstawowy identyfikator URIBase URI

Podstawowy identyfikator URI interfejsu API REST w klastrach usługi HDInsight opartych na systemie Linux jest dostępny w węźle głównym pod adresem 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/. Nazwa domeny węzła głównego jest generowana podczas tworzenia klastra i nie jest statyczna.The domain name of the head node is generated during cluster creation and is not static.

W pełni kwalifikowaną nazwę domeny (FQDN) węzła głównego klastra można znaleźć na kilka różnych sposobów:You can find the fully qualified domain name (FQDN) for the cluster head node in several different ways:

  • Z poziomu sesji SSH: Użyj polecenia headnode -f z sesji SSH do klastra.From an SSH session: Use the command headnode -f from an SSH session to the cluster.
  • Z witryny sieci Web Ambari: Wybierz pozycję usługi w górnej części strony, a następnie wybierz pozycję burza.From Ambari Web: Select Services from the top of the page, then select Storm. Na karcie Podsumowanie wybierz pozycję serwer interfejsu użytkownika burzy.From the Summary tab, select Storm UI Server. W górnej części strony jest wyświetlana nazwa FQDN węzła, który hostuje interfejs użytkownika burzy i interfejs API REST.The FQDN of the node that hosts the Storm UI and REST API is displayed at the top of the page.
  • Z interfejsu API REST usługi Ambari: Użyj polecenia curl -u admin -G "https:\//CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/STORM/components/STORM_UI_SERVER" , aby pobrać informacje o węźle, w którym działają interfejs użytkownika burzy i interfejs API REST.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. Zastąp wartość ClusterName nazwą klastra.Replace CLUSTERNAME with the cluster name. Po wyświetleniu monitu wprowadź hasło dla konta logowania (administratora).When prompted, enter the password for the login (admin) account. W odpowiedzi wpis "HOST_NAME" zawiera nazwę FQDN węzła.In the response, the "host_name" entry contains the FQDN of the node.

AuthenticationAuthentication

Żądania kierowane do interfejsu API REST muszą używać uwierzytelniania podstawowego, dlatego należy użyć nazwy i hasła administratora klastra usługi HDInsight.Requests to the REST API must use basic authentication, so you use the HDInsight cluster administrator name and password.

Uwaga

Ponieważ uwierzytelnianie podstawowe jest wysyłane przy użyciu czystego tekstu, należy zawsze używać protokołu HTTPS do zabezpieczania komunikacji z klastrem.Because basic authentication is sent by using clear text, you should always use HTTPS to secure communications with the cluster.

Zwracane wartościReturn values

Informacje zwracane z interfejsu API REST mogą być używane tylko w ramach klastra.Information that is returned from the REST API may only be usable from within the cluster. Na przykład w pełni kwalifikowana nazwa domeny (FQDN) zwracana dla serwerów Apache ZooKeeper nie jest dostępna z Internetu.For example, the fully qualified domain name (FQDN) returned for Apache ZooKeeper servers is not accessible from the Internet.

Następne krokiNext Steps

Dowiedz się, jak opracowywać topologie oparte na języku Java za pomocą platformy Apache Maven.Learn how to Develop Java-based topologies using Apache Maven.

Aby uzyskać listę więcej przykładowych topologii, zobacz przykładowe topologie dla Apache Storm w usłudze HDInsight.For a list of more example topologies, see Example topologies for Apache Storm on HDInsight.