Creare un cluster Apache Spark in Azure HDInsight

Questo articolo illustra come creare un cluster Apache Spark in Azure HDInsight e quindi eseguire una query Spark SQL su una tabella Hive. Per informazioni su Spark in HDInsight, vedere Panoramica: Apache Spark in Azure HDInsight.

Diagramma che descrive i passaggi per la creazione di un cluster Apache Spark in Azure HDInsight

Prerequisiti

Creare un cluster HDInsight Spark

In questa sezione viene creato un cluster HDInsight Spark usando un modello di Azure Resource Manager. Per altri metodi di creazione dei cluster, vedere Creare cluster HDInsight.

  1. Fare clic sull'immagine seguente per aprire il modello nel portale di Azure.

    Deploy to Azure

  2. Immettere i valori seguenti:

    Creare un cluster HDInsight Spark usando un modello di Azure Resource Manager

    • Sottoscrizione: selezionare la sottoscrizione di Azure per questo cluster.
    • Gruppo di risorse: creare un gruppo di risorse o selezionarne uno esistente. Il gruppo di risorse viene usato per gestire le risorse di Azure per i progetti.
    • Posizione: selezionare una posizione per il gruppo di risorse. Il modello usa questa posizione per la creazione del cluster e per l'archiviazione del cluster predefinita.
    • Nome cluster: immettere un nome per il cluster HDInsight che si vuole creare.
    • Versione di Spark: selezionare 2.0 come versione da installare nel cluster.
    • Nome utente e password di accesso del cluster: il nome dell'account di accesso predefinito è admin.
    • Nome utente e password SSH.

    Annotare questi valori perché sarà necessario usarli più avanti nell'esercitazione.

  3. Selezionare Accetto le condizioni riportate sopra, selezionare Aggiungi al dashboard e quindi fare clic su Acquista. È possibile visualizzare un nuovo riquadro denominato Invio della distribuzione per Distribuzione modello. La creazione del cluster richiede circa 20 minuti.

Se si verifica un problema con la creazione di cluster HDInsight, è possibile che non si abbiano le autorizzazioni necessarie per questa operazione. Per altre informazioni, vedere Requisiti di controllo di accesso.

Nota

Questo articolo crea un cluster Spark che usa BLOB del servizio di archiviazione di Azure come risorsa di archiviazione del cluster. È anche possibile creare un cluster Spark che usa Azure Data Lake Store come risorsa di archiviazione predefinita. Per istruzioni, vedere Creare un cluster HDInsight con Archivio Data Lake.

Eseguire istruzioni Spark SQL su una tabella Hive

SQL (Structured Query Language) è il linguaggio più diffuso e più usato per l'esecuzione di query e la definizione dei dati. I fondatori di Spark volevano sfruttare questa esperienza e mettere a disposizione il noto linguaggio di query sui dati a un gruppo più ampio di analisti che vogliono lavorare con i dati che si trovano in Hadoop Distributed File System (HDFS). A questo scopo, è nato Spark SQL. Funziona come un'estensione di Apache Spark per l'elaborazione di dati strutturati, usando la nota sintassi SQL.

Spark SQL supporta sia SQL che HiveQL come linguaggi di query. Le sue funzionalità includono il binding in Python, Scala e Java. Con esso è possibile eseguire query su dati archiviati in numerose posizioni, come database esterni, file di dati strutturati (ad esempio JSON) e tabelle Hive.

Esecuzione di Spark SQL in un cluster HDInsight

Quando si usa un server Jupyter Notebook configurato per il cluster HDInsight Spark, si ottiene un elemento sqlContext predefinito che può essere usato per eseguire query Hive con Spark SQL. Questa sezione illustra come avviare un notebook Jupyter e quindi eseguire una query Spark SQL di base in una tabella Hive esistente (hivesampletable) disponibile in tutti i cluster HDInsight.

  1. Aprire il portale di Azure.

  2. Se si è scelto di aggiungere il cluster al dashboard, fare clic sul riquadro del cluster nel dashboard per avviare il relativo pannello.

    Se il cluster non è stato aggiunto al dashboard, nel riquadro sinistro fare clic su Cluster HDInsight e quindi sul cluster creato.

  3. In Collegamenti rapidi fare clic su Dashboard cluster e quindi su Notebook di Jupyter. Se richiesto, immettere le credenziali per il cluster.

    Aprire Jupyter Notebook per eseguire la query interattiva Spark SQL

    Nota

    È anche possibile accedere all'istanza di Jupyter Notebook per il cluster aprendo l'URL seguente nel browser. Sostituire CLUSTERNAME con il nome del cluster:

    https://CLUSTERNAME.azurehdinsight.net/jupyter

  4. Creare un notebook. Fare clic su Nuovo e quindi su PySpark.

    Creare un'istanza di Jupyter Notebook per eseguire la query interattiva Spark SQL

    Un nuovo notebook verrà creato e aperto con il nome Untitled (Untitled.pynb).

  5. Fare clic sul nome del notebook nella parte superiore e, se si vuole, immettere un nome descrittivo.

    Specificare un nome per il notebook Jupyter da cui eseguire la query Spark interattiva

  6. Incollare il codice seguente in una cella vuota e quindi premere MAIUSC + INVIO per eseguire il codice. Nel codice seguente %%sql (denominato magic sql) indica al notebook Jupyter di usare l'elemento sqlContext predefinito per eseguire la query Hive. La query recupera le prime 10 righe di una tabella Hive (hivesampletable) disponibile in tutti i cluster HDInsight per impostazione predefinita.

    %%sql
    SELECT * FROM hivesampletable LIMIT 10
    

    Query Hive in HDInsight Spark

    Per altre informazioni sul magic %%sql e sui contesti predefiniti, vedere i kernel Jupyter disponibili per un cluster HDInsight.

    Nota

    Ogni volta che si esegue una query in Jupyter, il titolo della finestra del Web browser visualizza lo stato (Occupato) accanto al titolo del notebook. È anche visibile un cerchio pieno accanto al testo PySpark nell'angolo in alto a destra. Al termine del processo viene visualizzato un cerchio vuoto.

  7. La schermata si aggiornerà per visualizzare l'output della query.

    Output della query Hive in HDInsight Spark

  8. Al termine dell'esecuzione dell'applicazione, arrestare il notebook per rilasciare le risorse del cluster. A tale scopo, dal menu File del notebook fare clic su Close and Halt (Chiudi e interrompi).

  9. Se si intende completare i passaggi successivi in un secondo momento, assicurarsi di eliminare il cluster HDInsight creato in questo articolo.

Avviso

La fatturazione dei cluster HDInsight viene calcolata al minuto, indipendentemente dal fatto che siano in uso o meno. Assicurarsi di eliminare il cluster dopo aver finito di usarlo. Per altre informazioni, vedere l'articolo su come eliminare un cluster HDInsight.

Passaggio successivo

In questo articolo si è appreso come creare un cluster HDInsight Spark ed eseguire una query Spark SQL di base. Passare all'articolo successivo per informazioni su come usare un cluster HDInsight Spark per eseguire query interattive su dati di esempio.