Distribuire e gestire topologie Apache Storm in HDInsight basato su Linux | Microsoft Docs
Distribuire e gestire topologie Apache Storm in HDInsight
09/07/2017 9 minuti per la lettura Autori di contributi
In questo documento sono illustrati i concetti di gestione e monitoraggio delle topologie Storm in esecuzione su Storm in cluster HDInsight.
I passaggi descritti in questo articolo richiedono una versione di Storm basata su Linux nel cluster HDInsight. Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.
Per informazioni sulla distribuzione e sul monitoraggio di topologie in HDInsight basato su Windows, vedere Distribuire e gestire le topologie di Apache Storm in HDInsight basato su Windows
Storm basato su Linux in cluster HDInsight: per i passaggi relativi alla creazione di un cluster, vedere Introduzione ad Apache Storm in HDInsight .
(Facoltativo) Familiarità con SSH e SCP: per altre informazioni, vedere Usare SSH con HDInsight.
(Facoltativo) Visual Studio: Azure SDK 2.5.1 o versione successiva e Data Lake Tools per Visual Studio. Per altre informazioni, vedere Introduzione all'uso di Data Lake Tools per Visual Studio.
Una delle seguenti versioni di Visual Studio:
Visual Studio 2015, qualsiasi edizione
Visual Studio 2017, qualsiasi edizione. Data Lake Tools per Visual Studio 2017 viene installato come parte del carico di lavoro di Azure.
Inviare una topologia: Visual Studio
HDInsight Tools consente di inviare topologie C# o ibride al cluster Storm. Nei seguenti passaggi viene usata un'applicazione di esempio. Per informazioni sulla creazione tramite gli strumenti di HDInsight, vedere Sviluppare topologie C# usando gli strumenti di HDInsight per Visual Studio.
Se la versione più recente di Data Lake Tools per Visual Studio non è ancora installata, vedere Introduzione all'uso di Data Lake Tools per Visual Studio.
Data Lake Tools per Visual Studio veniva precedentemente chiamato HDInsight Tools per Visual Studio.
Data Lake Tools per Visual Studio è incluso nel carico di lavoro di Azure per Visual Studio 2017.
Aprire Visual Studio e selezionare File > Nuovo > Progetto.
Nella finestra di dialogo Nuovo progetto espandere Installato > Modelli e quindi selezionare HDInsight. Dall'elenco dei modelli selezionare Storm Sample. Nella parte inferiore della finestra di dialogo digitare un nome per l'applicazione.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e selezionare Submit to Storm on HDInsight.
Selezionare il cluster Storm in HDInsight dall'elenco a discesa Storm Cluster e quindi selezionare Submit. È possibile verificare se l'invio è riuscito o meno usando la finestra Output .
Inviare una topologia: SSH e il comando Storm
Connettersi al cluster HDInsight usando SSH. Sostituire USERNAME con il nome di accesso a SSH. Sostituire CLUSTERNAME con il nome del cluster HDInsight:
Per altre informazioni sull'uso di SSH per connettersi a HDInsight, vedere Usare SSH con HDInsight.
Questo comando consente di avviare la topologia di esempio WordCount nel cluster. Questa topologia genera in modo casuale le frasi e quindi conta le occorrenze di ogni parola nelle frasi.
Durante l'invio di una topologia al cluster, è prima di tutto necessario copiare il file con estensione JAR contenente il cluster prima di usare il comando storm. Usare il comando scp per copiare il file nel cluster. Ad esempio: scp FILENAME.jar USERNAME@CLUSTERNAME-ssh.azurehdinsight.net:FILENAME.jar
L'esempio WordCount e altri esempi di avvio dell'utilità storm sono già inclusi nel cluster in /usr/hdp/current/storm-client/contrib/storm-starter/.
Inviare una topologia: a livello di programmazione
È possibile distribuire a livello di codice una topologia usando il servizio Nimbus. https://github.com/Azure-Samples/hdinsight-java-deploy-storm-topology è disponibile un'applicazione Java di esempio che illustra come distribuire e avviare una topologia tramite il servizio Nimbus.
Monitorare e gestire: Visual Studio
Dopo che la topologia è stata inviata con Visual Studio, verrà visualizza la vista relativa alle topologie Storm. Per visualizzare informazioni sulla topologia in esecuzione, selezionarla dall'elenco.
È possibile visualizzare Storm Topologies anche da Esplora server, espandendo Azure > HDInsight e quindi facendo clic su un cluster Storm in HDInsight e selezionando View Storm Topologies.
Selezionare la forma degli spout o dei bolt per visualizzare informazioni su questi componenti. Viene aperta una nuova finestra per ogni elemento selezionato.
Disattivare e riattivare
La disattivazione di una topologia comporta la sua sospensione finché non viene terminata o riattivata. Per eseguire queste operazioni, usare i pulsanti Disattiva e Riattiva nella parte superiore del Topology Summary (Riepilogo topologia).
Il ribilanciamento di una topologia consente al sistema di analizzare il parallelismo della topologia. Ad esempio, se il cluster è stato ridimensionato per aggiungere altre note, il ribilanciamento consente a una topologia di visualizzare i nuovi nodi.
Per ribilanciare una topologia, usare il pulsante Ribilancia nella parte superiore di Topology Summary (Riepilogo topologia).
Il ribilanciamento di una topologia disattiva innanzitutto la topologia, ridistribuisce i processi di lavoro in modo uniforme nel cluster, quindi restituisce la topologia allo stato in cui si trovava prima che venisse eseguito il ribilanciamento. Se la topologia era attiva, tornerà a essere attiva di nuovo. Se invece era disattivata, rimarrà disattivata.
Terminare una topologia
Le topologie Storm continuano l'esecuzione fino a quando non vengono arrestate o fino a quando il cluster non viene eliminato. Per arrestare una topologia, usare il pulsante Termina nella parte superiore di Topology Summary (Riepilogo topologia).
Monitorare e gestire: SSH e il comando Storm
L'utilità storm consente di usare le topologie in esecuzione dalla riga di comando. Per visualizzare l'elenco completo dei comandi, usare storm -h .
Visualizzare l'elenco delle topologie
Usare il comando seguente per ottenere un elenco delle topologie in esecuzione:
Questo comando restituisce informazioni simili al testo seguente:
La disattivazione di una topologia comporta la sua sospensione finché non viene terminata o riattivata. Per disattivare e riattivare, usare i comandi seguenti:
Terminare una topologia in esecuzione
Una volta avviate, le topologie Storm continueranno a rimanere in esecuzione finché non vengono arrestate. Per arrestare una topologia, usare il comando seguente:
Monitorare e gestire: interfaccia utente di Storm
L'interfaccia utente di Storm è inclusa nel cluster HDInsight e fornisce un'interfaccia Web da usare con le topologie in esecuzione. Per visualizzare l'interfaccia utente di Storm, usare un Web browser per aprire https://CLUSTERNAME.azurehdinsight.net/stormui, dove CLUSTERNAME corrisponde al nome del cluster.
Nella pagina principale dell'interfaccia utente di Storm sono disponibili le informazioni seguenti.
Cluster summary: informazioni di base sul cluster Storm.
Topology summary: elenco delle topologie in esecuzione. Usare i collegamenti disponibili in questa sezione per visualizzare ulteriori informazioni su topologie specifiche.
Supervisor summary: informazioni su Storm Supervisor.
Nimbus configuration: configurazione Nimbus per il cluster.
Se si seleziona un collegamento nella sezione Topology summary , verranno visualizzate le informazioni seguenti sulla topologia.
Topology summary: informazioni di base sulla topologia.
Topology actions: azioni di gestione che è possibile eseguire per la topologia.
Activate: riprende l'elaborazione di una topologia disattivata.
Deactivate: sospende una topologia in esecuzione.
Rebalance: regola il parallelismo della topologia. È necessario ribilanciare le topologie in esecuzione dopo aver modificato il numero di nodi del cluster. Questa operazione consente alla topologia di regolare il parallelismo per compensare l'aumento o la diminuzione del numero di nodi del cluster.
Per altre informazioni, vedere l'articolo relativo al parallelismo di una topologia Storm.
Kill: termina una topologia Storm dopo il timeout specificato.
Topology stats: statistiche sulla topologia. Usare i collegamenti disponibili nella colonna Finestra per impostare l'intervallo di tempo per le rimanenti voci della pagina.
Spouts: spout usati dalla topologia. Usare i collegamenti disponibili in questa sezione per visualizzare ulteriori informazioni su spout specifici.
Bolts: bolt usati nella topologia. Usare i collegamenti disponibili in questa sezione per visualizzare ulteriori informazioni su bolt specifici.
Topology configuration: configurazione della topologia selezionata.
Riepilogo di spout e bolt
Se si seleziona un elemento nella sezione Spouts o Bolts, verranno visualizzate le informazioni seguenti:
Component summary: informazioni di base sullo spout o sul bolt.
Spout/Bolt stats: statistiche relative allo spout o al bolt. Usare i collegamenti disponibili nella colonna Finestra per impostare l'intervallo di tempo per le rimanenti voci della pagina.
Input stats (solo bolt): informazioni sui flussi di input usati dal bolt.
Statistiche di output: informazioni sui flussi generati dallo spout o dal bolt.
Executors: informazioni sulle istanze dello spout o del bolt. Selezionare la voce Port relativa a un esecutore specifico per visualizzare il log delle informazioni di diagnostica generate per questa istanza.
Errori: informazioni su eventuali errori dello spout o del bolt.
Monitorare e gestire: API REST
L'interfaccia utente di Storm si basa sull'API REST. È pertanto possibile eseguire funzionalità di gestione e monitoraggio simili usando l'API REST. L'API REST consente di creare strumenti personalizzati per la gestione e il monitoraggio di topologie Storm.
Per altre informazioni, vedere l'articolo relativo all'API REST dell'interfaccia utente di Storm. Le seguenti informazioni sono specifiche per l'uso dell'API REST con Apache Storm in HDInsight.
L'API REST di Storm non è disponibile pubblicamente su Internet ed è necessario accedervi usando un tunnel SSH al nodo head del cluster HDInsight. Per informazioni sulla creazione e sull'uso di un tunnel SSH, vedere Usare il tunneling SSH per accedere all'interfaccia Web di Ambari, ResourceManager, JobHistory, NameNode, Oozie e altre interfacce Web.
URI di base
L'URI di base per l'API REST nei cluster HDInsight basati su Linux sono disponibili nel nodo head in https://HEADNODEFQDN:8744/api/v1/. Il nome di dominio del nodo head viene generato durante la creazione del cluster e non è statico.
È possibile trovare il nome di dominio completo (FQDN) per il nodo head del cluster in diversi modi:
Da una sessione SSH: usare il comando headnode -f da una sessione SSH al cluster.
Da Ambari Web: selezionare Services (Servizi) nella parte superiore della pagina, quindi selezionare Storm. Dalla scheda Riepilogo selezionare Storm UI Server (Server dell'interfaccia utente di Storm). Il nome FQDN del nodo che ospita l'API REST e l'interfaccia utente di Storm è visualizzato nella parte superiore della pagina.
Dall'API REST Ambari: usare il comando curl -u admin:PASSWORD -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/STORM/components/STORM_UI_SERVER" per recuperare informazioni sul nodo in cui sono in esecuzione l'interfaccia utente di Storm e l'API REST. Sostituire PASSWORD con la password di amministratore per il cluster. Sostituire CLUSTERNAME con il nome del cluster. Nella risposta, la voce "host_name" contiene il nome di dominio completo del nodo.
Le richieste all'API REST devono usare l' autenticazione di basecon il nome e la password amministratore del cluster HDInsight.
Poiché l'autenticazione di base viene inviata in testo non crittografato, è necessario usare sempre HTTPS per proteggere le comunicazioni con il cluster.
Le informazioni restituite dall'API REST possono essere usate solo nel cluster. Ad esempio, il nome di dominio completo (FQDN) restituito per i server ZooKeeper non è accessibile da Internet.
Leggere le informazioni su come sviluppare topologie basate su Java con Maven.
Per un elenco di altre topologie di esempio, vedere Esempi di topologie Storm per Apache Storm in HDInsight.