Usare Apache Kafka con Storm in HDInsightUse Apache Kafka with Storm on HDInsight

Informazioni su come usare Apache Storm per leggere e scrivere in Apache Kafka.Learn how to use Apache Storm to read from and write to Apache Kafka. Questo esempio illustra anche come salvare i dati da una topologia di Storm nel file system compatibile con HDFS usato da HDInsight.This example also demonstrates how to save data from a Storm topology to the HDFS-compatible file system used by HDInsight.

Nota

La procedura descritta in questo documento permette di creare un gruppo di risorse di Azure che contiene sia un cluster Storm in HDInsight che un cluster Kafka in HDInsight.The steps in this document create an Azure resource group that contains both a Storm on HDInsight and a Kafka on HDInsight cluster. Entrambi questi cluster si trovano all'interno di una rete virtuale di Azure, che consente al cluster Storm di comunicare direttamente con il cluster Kafka.These clusters are both located within an Azure Virtual Network, which allows the Storm cluster to directly communicate with the Kafka cluster.

Al termine della procedura descritta in questo documento, eliminare i cluster per evitare costi supplementari.When you are done with the steps in this document, remember to delete the clusters to avoid excess charges.

Ottenere il codiceGet the code

Il codice per l'esempio usato in questo documento è disponibile all'indirizzo https://github.com/Azure-Samples/hdinsight-storm-java-kafka.The code for the example used in this document is available at https://github.com/Azure-Samples/hdinsight-storm-java-kafka.

Per compilare questo progetto, è necessaria la seguente configurazione per l'ambiente di sviluppo:To compile this project, you need the following configuration for your development environment:

  • Java JDK 1.8 o versione successiva.Java JDK 1.8 or higher. Per HDInsight 3.5 o una versione successiva è necessario Java 8.HDInsight 3.5 or higher require Java 8.

  • Maven 3.xMaven 3.x

  • Un client SSH (sono necessari i comandi ssh e scp). Per altre informazioni, vedere Usare SSH con HDInsight.An SSH client (you need the ssh and scp commands) - For information, see Use SSH with HDInsight.

  • Un editor di testo o ambiente IDE.A text editor or IDE.

Le variabili di ambiente seguenti possono essere impostate quando si installa Java e l'JDK nella workstation di sviluppo.The following environment variables may be set when you install Java and the JDK on your development workstation. È tuttavia necessario verificare che esistano e che contengano i valori corretti per il sistema in uso.However, you should check that they exist and that they contain the correct values for your system.

  • JAVA_HOME - deve puntare alla directory dove è installato JDK.JAVA_HOME - should point to the directory where the JDK is installed.
  • PATH: deve contenere i percorsi seguenti:PATH - should contain the following paths:

    • JAVA_HOME o il percorso equivalente.JAVA_HOME (or the equivalent path).
    • JAVA_HOME\bin o il percorso equivalente.JAVA_HOME\bin (or the equivalent path).
    • Directory in cui è installato Maven.The directory where Maven is installed.

Creare i clusterCreate the clusters

Apache Kafka in HDInsight non fornisce l'accesso ai broker Kafka tramite Internet pubblico.Apache Kafka on HDInsight does not provide access to the Kafka brokers over the public internet. Tutto ciò che comunica con Kafka deve trovarsi nella stessa rete virtuale di Azure dei nodi del cluster Kafka.Anything that talks to Kafka must be in the same Azure virtual network as the nodes in the Kafka cluster. Per questo esempio, i cluster Storm e Kafka si trovano entrambi in una rete virtuale di Azure.For this example, both the Kafka and Storm clusters are located in an Azure virtual network. Il diagramma seguente illustra il flusso delle comunicazioni tra i cluster:The following diagram shows how communication flows between the clusters:

Diagramma dei cluster Storm e Kafka in una rete virtuale di Azure

Nota

Altri servizi nel cluster, ad esempio SSH e Ambari, sono accessibili tramite Internet.Other services on the cluster such as SSH and Ambari can be accessed over the internet. Per altre informazioni sulle porte pubbliche disponibili con HDInsight, vedere Porte e URI usati da HDInsight.For more information on the public ports available with HDInsight, see Ports and URIs used by HDInsight.

Anche se è possibile creare manualmente cluster Storm e Kafka e una rete virtuale di Azure, è più semplice usare un modello di Azure Resource Manager.While you can create an Azure virtual network, Kafka, and Storm clusters manually, it's easier to use an Azure Resource Manager template. Seguire questa procedura per distribuire cluster Storm e Kafka e una rete virtuale di Azure nella sottoscrizione di Azure.Use the following steps to deploy an Azure virtual network, Kafka, and Storm clusters to your Azure subscription.

  1. Usare il pulsante seguente per accedere ad Azure e aprire il modello nel portale di Azure.Use the following button to sign in to Azure and open the template in the Azure portal.

    Deploy to Azure

    Il modello di Azure Resource Manager è disponibile all'indirizzo https://hditutorialdata.blob.core.windows.net/armtemplates/create-linux-based-kafka-storm-cluster-in-vnet-v2.json.The Azure Resource Manager template is located at https://hditutorialdata.blob.core.windows.net/armtemplates/create-linux-based-kafka-storm-cluster-in-vnet-v2.json. Crea le risorse seguenti:It creates the following resources:

    • Gruppo di risorse di AzureAzure resource group
    • Rete virtuale di AzureAzure Virtual Network
    • Account di archiviazione di AzureAzure Storage account
    • Kafka in HDInsight versione 3.6 con tre nodi di lavoroKafka on HDInsight version 3.6 (three worker nodes)
    • Storm in HDInsight versione 3.6 con tre nodi di lavoroStorm on HDInsight version 3.6 (three worker nodes)

    Avviso

    Per garantire la disponibilità di Kafka in HDInsight, il cluster deve contenere almeno tre nodi del ruolo di lavoro.To guarantee availability of Kafka on HDInsight, your cluster must contain at least three worker nodes. Questo modello crea un cluster Kafka contenente tre nodi di lavoro.This template creates a Kafka cluster that contains three worker nodes.

  2. Usare le linee guida seguenti per popolare le voci nella sezione Distribuzione personalizzata:Use the following guidance to populate the entries on the Custom deployment section:

    Distribuzione personalizzata di HDInsight

    • Gruppo di risorse: creare un gruppo o selezionarne uno esistente.Resource group: Create a group or select an existing one. Questo gruppo contiene il cluster HDInsight.This group contains the HDInsight cluster.

    • Località: scegliere una località geograficamente vicina.Location: Select a location geographically close to you.

    • Base Cluster Name (Nome di base del cluster): questo valore viene usato come nome di base per i cluster Storm e Kafka.Base Cluster Name: This value is used as the base name for the Storm and Kafka clusters. Ad esempio, se si immette hdi viene creato un cluster Storm denominato storm-hdi e un cluster Kafka denominato kafka-hdi.For example, entering hdi creates a Storm cluster named storm-hdi and a Kafka cluster named kafka-hdi.

    • Cluster Login User Name (Nome utente di accesso del cluster): nome utente amministratore per i cluster Storm e Kafka.Cluster Login User Name: The admin user name for the Storm and Kafka clusters.

    • Cluster Login Password (Password di accesso del cluster): password amministratore per i cluster Storm e Kafka.Cluster Login Password: The admin user password for the Storm and Kafka clusters.

    • SSH User Name (Nome utente SSH): utente SSH da creare per i cluster Storm e Kafka.SSH User Name: The SSH user to create for the Storm and Kafka clusters.

    • SSH Password (Password SSH): password dell'utente SSH per i cluster Storm e Kafka.SSH Password: The password for the SSH user for the Storm and Kafka clusters.

  3. Leggere le Condizioni e quindi selezionare Accetto le condizioni riportate sopra.Read the Terms and Conditions, and then select I agree to the terms and conditions stated above.

  4. Selezionare infine Aggiungi al dashboard e quindi Acquista.Finally, check Pin to dashboard and then select Purchase. La creazione dei cluster richiede circa 20 minuti.It takes about 20 minutes to create the clusters.

Dopo avere creato le risorse, viene visualizzata la sezione del gruppo di risorse.Once the resources have been created, the section for the resource group is displayed.

Sezione del gruppo di risorse per la rete virtuale e i cluster

Importante

Si noti che i nomi dei cluster HDInsight sono storm-BASENAME e kafka-BASENAME, dove BASENAME è il nome specificato per il modello.Notice that the names of the HDInsight clusters are storm-BASENAME and kafka-BASENAME, where BASENAME is the name you provided to the template. Questi nomi verranno usati nei passaggi successivi per la connessione ai cluster.You use these names in later steps when connecting to the clusters.

Informazioni sul codiceUnderstanding the code

Questo progetto contiene due topologie:This project contains two topologies:

  • KafkaWriter: questa topologia, definita dal file writer.yaml, scrive frasi casuali in Kafka usando il KafkaBolt fornito con Apache Storm.KafkaWriter: Defined by the writer.yaml file, this topology writes random sentences to Kafka using the KafkaBolt provided with Apache Storm.

    Questa topologia usa un componente SentenceSpout personalizzato per generare frasi casuali.This topology uses a custom SentenceSpout component to generate random sentences.

  • KafkaReader: questa topologia, definita dal file reader.yaml, legge i dati da Kafka usando il KafkaSpout fornito con Apache Storm e quindi registra i dati in stdout.KafkaReader: Defined by the reader.yaml file, this topology reads data from Kafka using the KafkaSpout provided with Apache Storm, then logs the data to stdout.

    Questa topologia usa iStorm HdfsBolt per scrivere dati nell'archivio predefinito per il cluster Storm.This topology uses the Storm HdfsBolt to write data to default storage for the Storm cluster.

    FluxFlux

Le topologie vengono definite tramite Flux.The topologies are defined using Flux. Flux è stato introdotto in Storm 0.10.x e consente di separare la configurazione della topologia dal codice.Flux was introduced in Storm 0.10.x and allows you to separate the topology configuration from the code. Per le topologie che fanno uso del framework Flux, la topologia viene definita in un file YAML.For Topologies that use the Flux framework, the topology is defined in a YAML file. Il file YAML può essere incluso come parte della topologia.The YAML file can be included as part of the topology. Può essere anche un file autonomo usato quando si invia la topologia.It can also be a standalone file used when you submit the topology. Flux supporta anche la sostituzione delle variabili in fase di esecuzione, caratteristica che viene usata in questo esempio.Flux also supports variable substitution at run-time, which is used in this example.

I parametri seguenti vengono impostati in fase di esecuzione per queste topologie:The following parameters are set at run time for these topologies:

  • ${kafka.topic}: nome dell'argomento Kafka usato dalla topologie per la lettura/scrittura.${kafka.topic}: The name of the Kafka topic that the topologies read/write to.

  • ${kafka.broker.hosts}: host in cui vengono eseguiti i broker di Kafka.${kafka.broker.hosts}: The hosts that the Kafka brokers run on. Le informazioni sui broker vengono usate da KafkaBolt durante la scrittura in Kafka.The broker information is used by the KafkaBolt when writing to Kafka.

  • ${kafka.zookeeper.hosts}: host in cui viene eseguito Zookeeper nel cluster di Kafka.${kafka.zookeeper.hosts}: The hosts that Zookeeper runs on in the Kafka cluster.

Per altre informazioni sulle topologie di Flux, vedere https://storm.apache.org/releases/1.1.0/flux.html.For more information on Flux topologies, see https://storm.apache.org/releases/1.1.0/flux.html.

Scaricare e compilare il progettoDownload and compile the project

  1. Nell'ambiente di sviluppo scaricare il progetto dall'indirizzo https://github.com/Azure-Samples/hdinsight-storm-java-kafka, aprire una riga di comando e passare al percorso in cui è stato scaricato il progetto.On your development environment, download the project from https://github.com/Azure-Samples/hdinsight-storm-java-kafka, open a command-line, and change directories to the location that you downloaded the project.

  2. Dalla directory hdinsight-storm-java-kafka usare il comando seguente per compilare il progetto e creare un pacchetto per la distribuzione:From the hdinsight-storm-java-kafka directory, use the following command to compile the project and create a package for deployment:

    mvn clean package
    

    Il processo del pacchetto crea un file denominato KafkaTopology-1.0-SNAPSHOT.jar nella directory target.The package process creates a file named KafkaTopology-1.0-SNAPSHOT.jar in the target directory.

  3. Usare i comandi seguenti per copiare il pacchetto nel cluster Storm in HDInsight.Use the following commands to copy the package to your Storm on HDInsight cluster. Sostituire USERNAME con il nome utente SSH per il cluster.Replace USERNAME with the SSH user name for the cluster. Sostituire BASENAME con il nome di base usato durante la creazione del cluster.Replace BASENAME with the base name you used when creating the cluster.

    scp ./target/KafkaTopology-1.0-SNAPSHOT.jar USERNAME@storm-BASENAME-ssh.azurehdinsight.net:KafkaTopology-1.0-SNAPSHOT.jar
    

    Quando richiesto, immettere la password usata durante la creazione del cluster.When prompted, enter the password you used when creating the clusters.

Configurare la topologiaConfigure the topology

  1. Usare uno dei metodi seguenti per individuare gli host del broker Kafka:Use one of the following methods to discover the Kafka broker hosts:

    $creds = Get-Credential -UserName "admin" -Message "Enter the HDInsight login"
    $clusterName = Read-Host -Prompt "Enter the Kafka cluster name"
    $resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/KAFKA/components/KAFKA_BROKER" `
        -Credential $creds
    $respObj = ConvertFrom-Json $resp.Content
    $brokerHosts = $respObj.host_components.HostRoles.host_name[0..1]
    ($brokerHosts -join ":9092,") + ":9092"
    
    curl -su admin -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/KAFKA/components/KAFKA_BROKER" | jq -r '["\(.host_components[].HostRoles.host_name):9092"] | join(",")' | cut -d',' -f1,2
    

    Importante

    Bash di esempio presuppone che $CLUSTERNAME contenga il nome del cluster HDInsight.The Bash example assumes that $CLUSTERNAME contains the name of the HDInsight cluster. Presuppone anche che jq sia installato.It also assumes that jq is installed. Quando richiesto, immettere la password dell'account di accesso al cluster.When prompted, enter the password for the cluster login account.

    Il valore restituito è simile al testo seguente:The value returned is similar to the following text:

     wn0-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:9092,wn1-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:9092
    

    Importante

    Anche se possono essere presenti più di due host broker per il cluster, non è necessario fornire un elenco completo di tutti gli host ai client.While there may be more than two broker hosts for your cluster, you do not need to provide a full list of all hosts to clients. È sufficiente specificarne uno o due.One or two is enough.

  2. Usare uno dei metodi seguenti per individuare gli host di Kafka Zookeeper:Use one of the following methods to discover the Kafka Zookeeper hosts:

    $creds = Get-Credential -UserName "admin" -Message "Enter the HDInsight login"
    $clusterName = Read-Host -Prompt "Enter the Kafka cluster name"
    $resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/services/ZOOKEEPER/components/ZOOKEEPER_SERVER" `
        -Credential $creds
    $respObj = ConvertFrom-Json $resp.Content
    $zookeeperHosts = $respObj.host_components.HostRoles.host_name[0..1]
    ($zookeeperHosts -join ":2181,") + ":2181"
    
    curl -su admin -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER" | jq -r '["\(.host_components[].HostRoles.host_name):2181"] | join(",")' | cut -d',' -f1,2
    

    Importante

    Bash di esempio presuppone che $CLUSTERNAME contenga il nome del cluster HDInsight.The Bash example assumes that $CLUSTERNAME contains the name of the HDInsight cluster. Presuppone anche che jq sia installato.It also assumes that jq is installed. Quando richiesto, immettere la password dell'account di accesso al cluster.When prompted, enter the password for the cluster login account.

    Il valore restituito è simile al testo seguente:The value returned is similar to the following text:

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

    Importante

    Anche se sono presenti più di due nodi Zookeeper, non è necessario fornire un elenco completo di tutti gli host ai client.While there are more than two Zookeeper nodes, you do not need to provide a full list of all hosts to clients. È sufficiente specificarne uno o due.One or two is enough.

    Salvare questo valore, che verrà usato in un secondo momento.Save this value, as it is used later.

  3. Modificare il file dev.properties nella radice del progetto.Edit the dev.properties file in the root of the project. Aggiungere le informazioni di host di Broker e Zookeeper per le righe corrispondenti in questo file.Add the Broker and Zookeeper hosts information to the matching lines in this file. Nell'esempio seguente viene configurato con i valori di esempio dei passaggi precedenti:The following example is configured using the sample values from the previous steps:

     kafka.zookeeper.hosts: zk0-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:2181,zk2-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:2181
     kafka.broker.hosts: wn0-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:9092,wn1-kafka.53qqkiavjsoeloiq3y1naf4hzc.ex.internal.cloudapp.net:9092
     kafka.topic: stormtopic
    
  4. Salvare il file dev.properties e quindi usare il comando seguente per caricarlo nel cluster Storm:Save the dev.properties file and then use the following command to upload it to the Storm cluster:

    scp dev.properties USERNAME@storm-BASENAME-ssh.azurehdinsight.net:KafkaTopology-1.0-SNAPSHOT.jar
    

    Sostituire USERNAME con il nome utente SSH per il cluster.Replace USERNAME with the SSH user name for the cluster. Sostituire BASENAME con il nome di base usato durante la creazione del cluster.Replace BASENAME with the base name you used when creating the cluster.

Avviare il writerStart the writer

  1. Usare quanto segue per connettersi al cluster Storm tramite SSH.Use the following to connect to the Storm cluster using SSH. Sostituire USERNAME con il nome utente SSH usato durante la creazione del cluster.Replace USERNAME with the SSH user name used when creating the cluster. Sostituire BASENAME con il nome di base usato durante la creazione del cluster.Replace BASENAME with the base name used when creating the cluster.

    ssh USERNAME@storm-BASENAME-ssh.azurehdinsight.net
    

    Quando richiesto, immettere la password usata durante la creazione del cluster.When prompted, enter the password you used when creating the clusters.

    Per altre informazioni, vedere Usare SSH con HDInsight.For information, see Use SSH with HDInsight.

  2. Dalla connessione SSH, usare il comando seguente per creare un argomento Kafka usato dalla topologia:From the SSH connection, use the following command to create the Kafka topic used by the topology:

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

    Sostituire $KAFKAZKHOSTS con l'informazione host di Zookeeper recuperata nella sezione precedente.Replace $KAFKAZKHOSTS with the Zookeeper host information you retrieved in the previous section.

  3. Dalla connessione SSH al cluster Storm usare il comando seguente per avviare la topologia del writer:From the SSH connection to the Storm cluster, use the following command to start the writer topology:

    storm jar KafkaTopology-1.0-SNAPSHOT.jar org.apache.storm.flux.Flux --remote -R /writer.yaml --filter dev.properties
    

    I parametri usati con questo comando sono i seguenti:The parameters used with this command are:

    • org.apache.storm.flux.Flux: usa Flux per configurare ed eseguire questa topologia.org.apache.storm.flux.Flux: Use Flux to configure and run this topology.

    • --remote: invia la topologia a Nimbus.--remote: Submit the topology to Nimbus. La topologia viene distribuita ai nodi del ruolo di lavoro nel cluster.The topology is distributed across the worker nodes in the cluster.

    • -R /writer.yaml: usa il file writer.yaml per configurare la topologia.-R /writer.yaml: Use the writer.yaml file to configure the topology. -R indica che questa risorsa è inclusa nel file JAR.-R indicates that this resource is included in the jar file. È nella radice del file JAR, quindi /writer.yaml è il relativo percorso.It's in the root of the jar, so /writer.yaml is the path to it.

    • --filter: consente di compilare le voci nella topologia writer.yaml con i valori nel file dev.properties.--filter: Populate entries in the writer.yaml topology using values in the dev.properties file. Ad esempio, il valore della voce kafka.topic nel file viene usato per sostituire la voce ${kafka.topic} nella definizione della topologia.For example, the value of the kafka.topic entry in the file is used to replace the ${kafka.topic} entry in the topology definition.

  4. Dopo aver avviato la topologia, usare il comando seguente per verificare che nell'argomento Kafka vengano scritti i dati:Once the topology has started, use the following command to verify that it is writing data to the Kafka topic:

    /usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh --zookeeper $KAFKAZKHOSTS --from-beginning --topic stormtopic
    

    Sostituire $KAFKAZKHOSTS con l'informazione host di Zookeeper recuperata nella sezione precedente.Replace $KAFKAZKHOSTS with the Zookeeper host information you retrieved in the previous section.

    Questo comando usa uno script fornito con Kafka per monitorare l'argomento.This command uses a script shipped with Kafka to monitor the topic. Dopo qualche secondo dovrebbe iniziare a restituire frasi casuali che sono state scritte nell'argomento.After a moment, it should start returning random sentences that have been written to the topic. L'output è simile all'esempio seguente:The output is similar to the following example:

     i am at two with nature             
     an apple a day keeps the doctor away
     snow white and the seven dwarfs     
     the cow jumped over the moon        
     an apple a day keeps the doctor away
     an apple a day keeps the doctor away
     the cow jumped over the moon        
     an apple a day keeps the doctor away
     an apple a day keeps the doctor away
     four score and seven years ago      
     snow white and the seven dwarfs     
     snow white and the seven dwarfs     
     i am at two with nature             
     an apple a day keeps the doctor away
    

    Usare CTRL+C per arrestare lo script.Use Ctrl+c to stop the script.

Avviare il readerStart the reader

  1. Dalla sessione SSH nel cluster Storm usare il comando seguente per avviare la topologia del reader:From the SSH session to the Storm cluster, use the following command to start the reader topology:

    storm jar KafkaTopology-1.0-SNAPSHOT.jar org.apache.storm.flux.Flux --remote -R /reader.yaml --filter dev.properties
    
  2. Dopo aver avviato la topologia, aprire l'interfaccia utente di Storm.Once the topology starts, open the Storm UI. Questa interfaccia utente Web si trova all'indirizzo https://storm-BASENAME.azurehdinsight.net/stormui.This web UI is located at https://storm-BASENAME.azurehdinsight.net/stormui. Sostituire BASENAME con il nome di base usato durante la creazione del cluster.Replace BASENAME with the base name used when the cluster was created.

    Quando richiesto, usare il nome dell'account di accesso amministratore, la cui impostazione predefinita è admin, e la password usati durante la creazione del cluster.When prompted, use the admin login name (default, admin) and password used when the cluster was created. Verrà visualizzata una pagina Web simile all'immagine seguente:You see a web page similar to the following image:

    Interfaccia utente di Storm

  3. Dall'interfaccia utente di Storm, selezionare il collegamento kafka-reader nella sezione Topology Summary (Riepilogo topologia) per visualizzare informazioni sulla topologia kafka-reader.From the Storm UI, select the kafka-reader link in the Topology Summary section to display information about the kafka-reader topology.

    Sezione di riepilogo della topologia dell'interfaccia utente Web di Storm

  4. Selezionare il collegamento logger-bolt nella sezione Bolts (All time) (Bolt - Intero periodo) per visualizzare informazioni sulle istanze del componente logger-bolt.To display information about the instances of the logger-bolt component, select the logger-bolt link in the Bolts (All time) section.

    Collegamento logger-bolt nella sezione dei bolt

  5. Nella sezione Executors (Esecutori) selezionare un collegamento nella colonna Port (Porta) per visualizzare le informazioni di registrazione su questa istanza del componente.In the Executors section, select a link in the Port column to display logging information about this instance of the component.

    Collegamento esecutori

    Il log contiene un elenco dei dati letti dall'argomento Kafka.The log contains a log of the data read from the Kafka topic. Le informazioni contenute nel log sono simili all'esempio seguente:The information in the log is similar to the following text:

     2016-11-04 17:47:14.907 c.m.e.LoggerBolt [INFO] Received data: four score and seven years ago
     2016-11-04 17:47:14.907 STDIO [INFO] the cow jumped over the moon
     2016-11-04 17:47:14.908 c.m.e.LoggerBolt [INFO] Received data: the cow jumped over the moon
     2016-11-04 17:47:14.911 STDIO [INFO] snow white and the seven dwarfs
     2016-11-04 17:47:14.911 c.m.e.LoggerBolt [INFO] Received data: snow white and the seven dwarfs
     2016-11-04 17:47:14.932 STDIO [INFO] snow white and the seven dwarfs
     2016-11-04 17:47:14.932 c.m.e.LoggerBolt [INFO] Received data: snow white and the seven dwarfs
     2016-11-04 17:47:14.969 STDIO [INFO] an apple a day keeps the doctor away
     2016-11-04 17:47:14.970 c.m.e.LoggerBolt [INFO] Received data: an apple a day keeps the doctor away
    

Arrestare le topologieStop the topologies

Dalla sessione SSH nel cluster Storm usare i comandi seguenti per arrestare le topologie di Storm:From an SSH session to the Storm cluster, use the following commands to stop the Storm topologies:

storm kill kafka-writer
storm kill kafka-reader

Eliminare il clusterDelete the cluster

Avviso

La fatturazione dei cluster HDInsight viene calcolata al minuto, indipendentemente dal fatto che siano in uso o meno.Billing for HDInsight clusters is prorated per minute, whether you are using them or not. Assicurarsi di eliminare il cluster dopo aver finito di usarlo.Be sure to delete your cluster after you have finished using it. Per altre informazioni, vedere l'articolo su come eliminare un cluster HDInsight.For more information, see How to delete an HDInsight cluster.

Le procedure illustrate in questo documento creano entrambi i cluster nello stesso gruppo di risorse di Azure. È quindi possibile eliminare il gruppo di risorse dal portale di Azure.Since the steps in this document create both clusters in the same Azure resource group, you can delete the resource group in the Azure portal. Se si elimina il gruppo di risorse, tutte le risorse create seguendo questo documento vengono rimosse.Deleting the resource group removes all resources created by following this document.

Passaggi successiviNext steps

Per altri esempi di topologie che possono essere usate con Storm in HDInsight, vedere Esempi di topologie e componenti Storm per Apache Storm in HDInsight.For more example topologies that can be used with Storm on HDInsight, see Example Storm topologies and components.

Per informazioni sulla distribuzione e sul monitoraggio di topologie in HDInsight basato su Linux, vedere Distribuzione e gestione di topologie Apache Storm in HDInsight basato su Linux.For information on deploying and monitoring topologies on Linux-based HDInsight, see Deploy and manage Apache Storm topologies on Linux-based HDInsight