Installare un notebook di Jupyter in locale e connetterlo ad Apache Spark in HDInsight

Questo articolo illustra come installare Jupyter Notebook, insieme ai kernel personalizzati PySpark (per Python) e Spark (per Scala) e al magic Spark, e come connettere l'applicazione a un cluster HDInsight. L'installazione di Jupyter nel computer locale può essere dettata da molti motivi e può anche presentare alcuni problemi. Per altre informazioni, vedere la sezione Perché installare Jupyter nel computer locale alla fine di questo articolo.

L'installazione di Jupyter e del magic Spark nel computer si articola in tre passaggi chiave.

  • Installare Jupyter Notebook
  • Installare i kernel PySpark e Spark con il magic Spark
  • Configurare il magic Spark per l'accesso al cluster Spark in HDInsight

Per altre informazioni sui kernel personalizzati e su Spark magic disponibili per Jupyter Notebook con il cluster HDInsight, vedere Kernel disponibili per Jupyter Notebook con cluster HDInsight Spark Linux su HDInsight.

Prerequisiti

I prerequisiti elencati di seguito non riguardano l'installazione di Jupyter. Riguardano invece la connessione di Jupyter Notebook a un cluster HDInsight dopo l'installazione.

Installare Jupyter Notebook nel computer

Prima di installare i notebook Jupyter è necessario installare Python. Sia Python che Jupyter sono disponibili come parte della distribuzione Anaconda. Quando si installa Anaconda, viene installata una distribuzione di Python. Dopo aver installato Anaconda, aggiungere l'installazione di Jupyter mediante l'esecuzione dei comandi appropriati.

  1. Scaricare il programma di installazione di Anaconda per la piattaforma in uso ed eseguirlo. Quando si esegue l'installazione guidata, assicurarsi di selezionare l'opzione per l'aggiunta di Anaconda alla variabile PATH.
  2. Eseguire il comando seguente per installare Jupyter.

     conda install jupyter
    

    Per altre informazioni sull'installazione di Jupyter, vedere l'argomento relativo all' installazione di Jupyter mediante Anaconda.

Installare i kernel e il magic Spark

Per le istruzioni su come installare il magic Spark, i kernel Spark e PySpark, seguire le istruzioni di installazione nella documentazione sparkmagic su GitHub. Il primo passaggio nella documentazione relativa al magic Spark richiede di installarlo. Sostituire il primo passaggio nel collegamento con i comandi seguenti, a seconda della versione del cluster HDInsight a cui ci si connetterà. Seguire quindi i passaggi rimanenti nella documentazione relativa al magic Spark. Se si intende installare i diversi kernel, è necessario eseguire il passaggio 3 nella sezione delle istruzioni di installazione del magic Spark.

  • Per i cluster v3.4, installare sparkmagic 0.2.3 eseguendo pip install sparkmagic==0.2.3

  • Per i cluster v3.5 e v3.6, installare sparkmagic 0.11.2 eseguendo pip install sparkmagic==0.11.2

Configurare il magic Spark per la connessione al cluster HDInsight Spark

Questa sezione illustra come configurare il magic Spark installato in precedenza per la connessone a un cluster Apache Spark. È necessario che tale cluster sia già stato creato in Azure HDInsight.

  1. Le informazioni di configurazione di Jupyter sono in genere archiviate nella home directory dell'utente. Per individuare la home directory su una qualsiasi piattaforma del sistema operativo, digitare i comandi seguenti.

    Avviare la shell di Python. In una finestra di comando digitare quanto segue:

     python
    

    Nella shell di Python immettere il comando seguente per individuare la home directory.

     import os
     print(os.path.expanduser('~'))
    
  2. Passare alla home directory e, se non esiste già, creare una cartella denominata .sparkmagic .

  3. All'interno della cartella creare un file denominato config.json e aggiungere a quest'ultimo il frammento di codice JSON seguente.

     {
       "kernel_python_credentials" : {
         "username": "{USERNAME}",
         "base64_password": "{BASE64ENCODEDPASSWORD}",
         "url": "https://{CLUSTERDNSNAME}.azurehdinsight.net/livy"
       },
       "kernel_scala_credentials" : {
         "username": "{USERNAME}",
         "base64_password": "{BASE64ENCODEDPASSWORD}",
         "url": "https://{CLUSTERDNSNAME}.azurehdinsight.net/livy"
       }
     }
    
  4. Sostituire {USERNAME}, {CLUSTERDNSNAME} e {BASE64ENCODEDPASSWORD} con i valori appropriati. È possibile usare diverse utilità del linguaggio di programmazione preferito o uno strumento online per convertire la password corrente in una password con codifica Base64.

  5. Configurare le impostazioni di heartbeat corrette in config.json. Queste impostazioni devono essere aggiunte allo stesso livello dei frammenti kernel_python_credentials e kernel_scala_credentials aggiunti in precedenza. Per un esempio di come e dove aggiungere le impostazioni di heartbeat, vedere questo file config.json di esempio.

    • Per sparkmagic 0.2.3 (cluster v3.4), includere:

        "should_heartbeat": true,
        "heartbeat_refresh_seconds": 5,
        "heartbeat_retry_seconds": 1
      
    • Per sparkmagic 0.11.2 (cluster v3.5 e v3.6), includere:

        "heartbeat_refresh_seconds": 5,
        "livy_server_heartbeat_timeout_seconds": 60,
        "heartbeat_retry_seconds": 1
      

      Suggerimento

      Gli heartbeat vengono inviati per assicurare che le sessioni non vengano perse. Quando un computer va in sospensione o viene arrestato, l'heartbeat non verrà inviato e la sessione verrà quindi eliminata. Per disabilitare questo comportamento per i cluster v3.4, è possibile impostare la configurazione di Livy livy.server.interactive.heartbeat.timeout su 0 dall'interfaccia utente di Ambari. Per i cluster v3.5, se non si imposta la configurazione 3.5 precedente, la sessione non verrà eliminata.

  6. Avviare Jupyter. Usare il comando seguente dal prompt dei comandi.

     jupyter notebook
    
  7. Verificare che sia possibile connettersi al cluster mediante Jupyter Notebook e usare il magic Spark disponibile con i kernel. Eseguire i passaggi seguenti.

    a. Creare un nuovo notebook. Nell'angolo a destra fare clic su Nuovo. Verranno visualizzati il kernel predefinito Python2 e i due nuovi kernel installati, PySpark e Spark. Fare clic su PySpark.

    Kernel nel notebook di Jupyter

    b. Eseguire il frammento di codice seguente.

     %%sql
     SELECT * FROM hivesampletable LIMIT 5
    

    Se è stato possibile recuperare l'output, viene verificata la connessione al cluster HDInsight.

    Suggerimento

    Se si desidera aggiornare la configurazione del notebook per connettersi a un cluster differente, aggiornare il file config.json con un nuovo set di valori come illustrato nel Passaggio 3.

Perché installare Jupyter nel computer locale

Può esistere una serie di motivi per cui è consigliabile installare Jupyter nel computer in uso e quindi connetterlo a un cluster Spark in HDInsight.

  • Anche se i notebook Jupyter sono già disponibili nel cluster Spark in Azure HDInsight, l'installazione di Jupyter nel computer offre la possibilità di creare i notebook in locale, testare l'applicazione con un cluster in esecuzione e quindi caricare i notebook nel cluster. È possibile caricare i notebook nel cluster usando Jupyter Notebook già in esecuzione sul cluster oppure salvare i notebook nella cartella /HdiNotebooks nell'account di archiviazione associato al cluster. Per altre informazioni sul modo in cui i notebook vengono archiviati nel cluster, vedere la sezione Dove sono archiviati i notebook?
  • Con i notebook disponibili in locale è possibile connettersi a cluster Spark diversi in base alle esigenze dell'applicazione.
  • È possibile usare GitHub per implementare un sistema di controllo del codice sorgente e usare il controllo della versione per il notebook. È anche possibile avere a disposizione un ambiente di collaborazione in cui più utenti possono lavorare allo stesso notebook.
  • È possibile lavorare con i notebook in locale anche senza avere un cluster. È necessario avere un cluster solo per eseguire i test dei notebook, non per gestire manualmente i notebook o un ambiente di sviluppo.
  • Può essere più semplice configurare il proprio ambiente di sviluppo locale che configurare l'installazione di Jupyter nel cluster. È possibile sfruttare tutto il software installato localmente senza configurare uno o più cluster remoti.

Avviso

Con Jupyter installato nel computer locale più utenti possono eseguire contemporaneamente lo stesso notebook nello stesso cluster Spark. In questo caso, vengono create più sessioni di Livy. Se si verifica un problema e si vuole eseguire il debug, tenere traccia della sessione di Livy che appartiene l'utente sarà un'attività complessa.

Vedere anche

Scenari

Creare ed eseguire applicazioni

Strumenti ed estensioni

Gestire risorse