Usare Azure Toolkit for Eclipse per creare applicazioni Spark per un cluster HDInsight

Usare gli strumenti HDInsight in Azure Toolkit for Eclipse per sviluppare applicazioni Spark scritte in Scala e inoltrarle a un cluster Azure HDInsight Spark direttamente dall'IDE Eclipse. È possibile usare gli strumenti di HDInsight in diversi modi:

  • Per sviluppare e inviare un'applicazione Spark in Scala in un cluster HDInsight Spark
  • Per accedere alle risorse cluster HDInsight Spark di Azure
  • Per sviluppare ed eseguire un'applicazione Spark in Scala localmente

Importante

È possibile usare questo strumento per creare e inviare applicazioni solo per un cluster HDInsight Spark in Linux.

Prerequisiti

Installare gli strumenti di HDInsight in Azure Toolkit for Eclipse e nel plug-in di Scala

Installare gli strumenti di HDInsight

Gli strumenti HDInsight per Eclipse sono disponibili come parte di Azure Toolkit for Eclipse. Le istruzioni di installazione sono disponibili in Installazione di Azure Toolkit for Eclipse.

Installare il plug-in di Scala

Quando si apre Eclipse, Strumenti di HDInsight rileva automaticamente se è installato il plug-in Scala. Selezionare OK per continuare, quindi seguire le istruzioni per installare il plug-in del Marketplace di Eclipse.

Installazione automatica del plug-in di Scala

Accedere alla sottoscrizione di Azure.

  1. Avviare l'IDE di Eclipse e aprire Azure Explorer. Nel menu Window (Finestra) fare clic su Show View (Mostra visualizzazione) e quindi su Other (Altro). Nella finestra di dialogo visualizzata espandere Azure, selezionare Azure Explorer e quindi OK.

    Finestra di dialogo Show View (Mostra visualizzazione)

  2. Fare clic con il pulsante destro del mouse sul nodo Azure e quindi scegliere Sign In (Accedi).
  3. Nella finestra di dialogo Azure Sign In (Accesso ad Azure) scegliere il metodo di autenticazione, selezionare Sign in (Accedi) e immettere le credenziali di Azure.

    Finestra di dialogo di accesso di Azure

  4. Dopo l'accesso, la finestra di dialogo Selezionare le sottoscrizioni elenca tutte le sottoscrizioni di Azure associate alle credenziali. Fare clic su Seleziona per chiudere la finestra di dialogo.

    Finestra di dialogo Selezionare le sottoscrizioni

  5. Nella scheda Azure Explorer espandere HDInsight per visualizzare i cluster HDInsight Spark nella sottoscrizione.

    Cluster HDInsight Spark in Azure Explorer

  6. È possibile espandere ancora un nodo del nome cluster per vedere le risorse, ad esempio gli account di archiviazione, associate al cluster.

    Espansione di un nome cluster per vedere le risorse

Configurare un progetto Spark in Scala per un cluster HDInsight Spark

  1. Nell'area di lavoro IDE di Eclipse selezionare File, New (Nuovo) e quindi selezionare Project (Progetto).
  2. Nella procedura guidata New Project (Nuovo progetto) espandere HDInsight, selezionare Spark on HDInsight (Scala) (Spark in HDInsight - Scala) e quindi fare clic su Next (Avanti).

    Selezione del progetto Spark on HDInsight (Scala)

  3. La creazione guidata del progetto Scala rileva automaticamente se è installato il plug-in Scala. Selezionare OK per continuare a scaricare il plug-in Scala e quindi seguire le istruzioni per riavviare Eclipse.

    Controllo di Scala

  4. Nella finestra di dialogo New HDInsight Scala Project (Nuovo progetto HDInsight Scala) specificare i valori seguenti e selezionare su Next (Avanti):

    • Immettere un nome per il progetto.
    • Nell'area JRE verificare che l'opzione Use an execution environment JRE (Usa un ambiente di esecuzione JRE) sia impostata su JavaSE-1.7 o versioni successive.
    • Assicurarsi che l'SDK di Spark sia impostato sul percorso in cui è stato scaricato l'SDK. Il collegamento al percorso di download è incluso nella sezione Prerequisiti illustrata in precedenza in questo articolo. È anche possibile scaricare l'SDK dal collegamento incluso nella finestra di dialogo.

    Finestra di dialogo New HDInsight Scala Project (Nuovo progetto HDInsight Scala)

  5. Nella finestra di dialogo successiva selezionare la scheda Libraries (Librerie), mantenere i valori predefiniti e quindi fare clic su Finish (Fine).

    Scheda Libraries (Librerie)

Creare un'applicazione Scala per un cluster HDInsight Spark

  1. Nell'ambiente IDE Eclipse in Package Explorer (Esplora pacchetti) espandere il progetto creato in precedenza, fare clic con il pulsante destro del mouse su src, puntare a New (Nuovo) e quindi selezionare Other (Altro).
  2. Nella finestra di dialogo Select a wizard (Seleziona una procedura guidata) espandere Scala Wizards (Procedure guidate Scala) e fare clic su Scala Object (Oggetto Scala) e quindi su Next (Avanti).

    Finestra di dialogo Select a wizard (Seleziona una procedura guidata)

  3. Nella finestra di dialogo Create New File (Crea nuovo file) immettere un nome per l'oggetto e quindi selezionare Finish (Fine).

    Finestra di dialogo Create New File (Crea nuovo file)

  4. Incollare il codice seguente nell'editor di testo:

     import org.apache.spark.SparkConf
     import org.apache.spark.SparkContext
    
     object MyClusterApp{
       def main (arg: Array[String]): Unit = {
         val conf = new SparkConf().setAppName("MyClusterApp")
         val sc = new SparkContext(conf)
    
         val rdd = sc.textFile("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
         //find the rows that have only one digit in the seventh column in the CSV
         val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
         rdd1.saveAsTextFile("wasb:///HVACOut")
       }        
     }
    
  5. Eseguire l'applicazione in un cluster HDInsight Spark:

    a. In Package Explorer (Esplora pacchetti) fare clic con il pulsante destro del mouse sul nome del progetto e quindi scegliere Submit Spark Application to HDInsight (Invia applicazione Spark a HDInsight).
    b. Nella finestra di dialogo Spark Submission (Invio Spark) specificare i valori seguenti e selezionare Submit (Invia):

    • Per Cluster Name(Nome cluster) selezionare il cluster HDInsight Spark in cui eseguire l'applicazione.
    • Selezionare un elemento nel progetto Eclipse oppure nel disco rigido. Il valore predefinito dipende dall'elemento su cui si fa clic con il pulsante destro del mouse da Package Explorer (Esplora pacchetti).
    • Nell'elenco a discesa Main class name (Nome classe principale) l'invio guidato mostra tutti i nomi di oggetto del progetto. Selezionare o inserire quello che si vuole eseguire. Se si seleziona un elemento da un disco rigido, è necessario immettere manualmente il nome della classe principale.
    • Poiché il codice dell'applicazione in questo esempio non richiede argomenti della riga di comando e non fa riferimento a JAR o file, è possibile lasciare vuote le rimanenti caselle di testo.

      Finestra di dialogo Spark Submission (Invio Spark)

  6. Nella scheda Spark Submission (Invio Spark) verrà visualizzato lo stato di avanzamento. È possibile arrestare l'applicazione selezionando il pulsante rosso nella finestra Spark Submission (Invio Spark). È anche possibile visualizzare i log per questa esecuzione dell'applicazione specifica selezionando l'icona del mondo, indicata dalla casella blu nell'immagine.

    Finestra Spark Submission (Invio Spark)

Accedere e gestire i cluster HDInsight Spark con gli strumenti HDInsight in Azure Toolkit for Eclipse

È possibile eseguire varie operazioni con gli strumenti HDInsight, tra cui accedere all'output dei processi.

Accedere alla visualizzazione del processo

  1. In Azure Explorer espandere HDInsight, espandere il nome del cluster Spark e quindi selezionare Processi.

    Nodo di visualizzazione dei processi

  2. Selezionare il nodo Processi . Strumenti di HDInsight rileva automaticamente se è installato il plug-in E(fx)clipse. Selezionare OK per continuare, quindi seguire le istruzioni per installare il plug-in del Marketplace di Eclipse e riavviare Eclipse.

    Installare E(fx)clipse

  3. Aprire la visualizzazione del processo dal nodo Processi. Nel riquadro destro la scheda Spark Job View (Visualizzazione processi Spark) visualizza tutte le applicazioni eseguite nel cluster. Selezionare il nome dell'applicazione per cui si vogliono visualizzare altri dettagli.

    Dettagli applicazione

    È quindi possibile intraprendere una delle seguenti operazioni:

    • Passare il mouse sul grafico del processo. Mostra le informazioni di base sul processo in esecuzione. Selezionare il grafico del processo: vengono visualizzate le fasi e le informazioni generate da ogni processo.

      Dettagli delle fasi dei processi

    • Selezionare la scheda Log per visualizzare i log di uso più frequente, ad esempio Driver Stderr, Driver Stdout e Directory Info.

      Dettagli del log

    • Aprire l'interfaccia utente della cronologia di Spark e l'interfaccia utente di YARN, a livello di applicazione, selezionando i rispettivi collegamenti ipertestuali nella parte superiore della finestra.

Accedere al contenitore di archiviazione per il cluster

  1. In Azure Explorer espandere il nodo radice HDInsight per visualizzare un elenco di cluster HDInsight Spark disponibili.
  2. Espandere il nome del cluster per visualizzare l'account di archiviazione e il contenitore di archiviazione predefinito per il cluster.

    Account di archiviazione e contenitore di archiviazione predefinito

  3. Fare clic sul nome del contenitore di archiviazione associato al cluster. Nel riquadro destro fare doppio clic sulla cartella HVACOut. Aprire uno dei file part- per visualizzare l'output dell'applicazione.

Accedere al Server cronologia Spark

  1. In Azure Explorer fare clic con il pulsante destro del mouse sul nome del cluster Spark e quindi scegliere Open Spark History UI (Apri UI cronologia Spark). Quando richiesto, immettere le credenziali dell'amministratore per il cluster. Queste sono state specificate durante il provisioning del cluster.
  2. Nel dashboard del Server cronologia Spark è possibile usare il nome dell'applicazione per cercare l'applicazione di cui è appena stata completata l'esecuzione. Nel codice precedente impostare il nome dell'applicazione usando val conf = new SparkConf().setAppName("MyClusterApp"). Il nome dell'applicazione Spark era MyClusterApp.

Avviare il portale di Ambari

  1. In Azure Explorer fare clic con il pulsante destro del mouse sul nome del cluster Spark e quindi scegliere Open Cluster Management Portal (Ambari) (Apri portale di gestione cluster - Ambari).
  2. Quando richiesto, immettere le credenziali dell'amministratore per il cluster. Queste sono state specificate durante il provisioning del cluster.

Gestire le sottoscrizioni di Azure

Per impostazione predefinita, gli strumenti HDInsight in Azure Toolkit for Eclipse elencano i cluster Spark di tutte le sottoscrizioni di Azure. Se necessario, è possibile specificare le sottoscrizioni per cui si vuole accedere al cluster.

  1. In Azure Explorer fare clic con il pulsante destro del mouse sul nodo radice Azure e quindi scegliere Gestisci sottoscrizioni.
  2. Nella finestra di dialogo deselezionare le caselle di controllo della sottoscrizione alla quale non si vuole accedere e quindi fare clic su Chiudi. È anche possibile selezionare Esci per uscire dalla sessione di sottoscrizione di Azure.

Eseguire un'applicazione Spark in Scala localmente

È possibile usare gli strumenti HDInsight in Azure Toolkit for Eclipse per eseguire applicazioni Spark in Scala localmente nella workstation. Tali applicazioni in genere non richiedono l'accesso a risorse del cluster quali il contenitore di archiviazione e possono essere eseguite e testate localmente.

Prerequisito

Quando si esegue l'applicazione Spark Scala locale in un computer Windows, potrebbe essere restituita un'eccezione, come spiegato in SPARK-2356, che si verifica a causa di un file WinUtils.exe mancante in Windows.

Per risolvere questo errore è necessario scaricare il file eseguibile in un percorso come C:\WinUtils\bin. È quindi necessario aggiungere una variabile di ambiente HADOOP_HOME e impostare il valore della variabile su C\WinUtils.

Eseguire un'applicazione Spark in Scala locale

  1. Avviare Eclipse e creare un progetto. Nella finestra di dialogo New Project (Nuovo progetto) selezionare le opzioni seguenti e quindi fare clic su Next (Avanti).

    • Selezionare HDInsight nel riquadro sinistro.
    • Selezionare Spark on HDInsight Local Run Sample (Scala) (Esecuzione locale di esempio Spark in HDInsight - Scala) nel riquadro destro.

    Finestra di dialogo Nuovo progetto

  2. Per specificare i dettagli del progetto, seguire i passaggi da 3 a 6 illustrati nella sezione precedente Configurare un progetto Spark in Scala per un cluster HDInsight Spark.

  3. Il modello aggiunge un codice di esempio (LogQuery) sotto la cartella src eseguibile in locale nel computer in uso.

    Percorso di LogQuery

  4. Fare clic con il pulsante destro del mouse sull'applicazione LogQuery, puntare a Run As (Esegui come) e quindi selezionare 1 Scala Application (1 applicazione Scala). Un output come questo viene mostrato nella scheda Console:

    Risultato dell'esecuzione locale dell'applicazione Spark

Problemi noti

Per inviare un'applicazione ad Azure Data Lake Store, selezionare la modalità Interactive (Interattivo) durante l'accesso ad Azure. Se si seleziona la modalità Automated (Automatico), viene visualizzato un errore.

Accesso interattivo

È possibile scegliere un cluster di Azure Data Lake per inviare l'applicazione con qualsiasi metodo di accesso.

Il supporto della visualizzazione diretta degli output di Spark non è al momento disponibile.

Commenti e suggerimenti

Per eventuali commenti oppure se si riscontrano problemi nell'uso di questo strumento, inviare un messaggio di posta elettronica all'indirizzo hdivstool@microsoft.com.

Vedere anche

Scenari

Creazione ed esecuzione di applicazioni

Strumenti ed estensioni

Gestione delle risorse