Condividi tramite


Inviare e gestire attività su un cluster Apache Spark™ in HDInsight nel servizio Azure Kubernetes (AKS)

Importante

Azure HDInsight su AKS è stato ritirato il 31 gennaio 2025. Scopri di più con questo annuncio.

È necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare la chiusura brusca dei carichi di lavoro.

Importante

Questa funzionalità è attualmente in anteprima. Le condizioni supplementari per l'utilizzo per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure in versione beta, in anteprima o altrimenti non ancora rilasciate nella disponibilità generale. Per informazioni su questa specifica anteprima, consultare le informazioni sull'anteprima di Azure HDInsight su Azure Kubernetes Service (AKS). Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire microsoft per altri aggiornamenti su community di Azure HDInsight.

Dopo aver creato il cluster, l'utente può usare varie interfacce per inviare e gestire i processi tramite

  • uso di Jupyter
  • utilizzo di Zeppelin
  • utilizzando ssh (spark-submit)

Uso di Jupyter

Prerequisiti

Un cluster Apache Spark™ in HDInsight nel servizio Azure Kubernetes. Per altre informazioni, vedere Creare un cluster Apache Spark.

Jupyter Notebook è un ambiente notebook interattivo che supporta vari linguaggi di programmazione.

Creare un notebook di Jupyter

  1. Passare alla pagina del cluster Apache Spark™ e aprire la scheda panoramica . Fare clic su Jupyter e chiede di eseguire l'autenticazione e aprire la pagina Web di Jupyter.

    Screenshot su come selezionare un notebook Jupyter.

  2. Nella pagina Web di Jupyter selezionare Nuovo > PySpark per creare un notebook.

    screenshot della nuova pagina PySpark.

    Nuovo notebook creato e aperto con il nome Untitled(Untitled.ipynb).

    Nota

    Usando il kernel PySpark o Python 3 per creare un notebook, la sessione Spark viene creata automaticamente quando si esegue la prima cella di codice. Non è necessario creare in modo esplicito la sessione.

  3. Incollare il codice seguente in una cella vuota di Jupyter Notebook, quindi premere MAIUSC + INVIO per eseguire il codice. Vedere qui per altri controlli su Jupyter.

    screenshot della pagina PySpark con il contenuto.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   
    #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   
    #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Tracciare un grafico con stipendio e età come assi X e Y

  5. Nello stesso notebook incollare il codice seguente in una cella vuota del notebook di Jupyter, quindi premere MAIUSC + INVIO per eseguire il codice.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    
    plt.plot(age_series,salary_series)
    plt.show()
    

    Screenshot dell'output del grafico.

Salvare il notebook

  1. Dalla barra dei menu del notebook, passare a File > Salva e checkpoint.

  2. Chiudere il notebook per liberare le risorse del cluster: dalla barra dei menu del notebook, vai a File > Chiudi e Interrompi. È anche possibile eseguire uno qualsiasi dei notebook nella cartella degli esempi.

    Screenshot di come salvare i taccuini.

Uso di notebook Apache Zeppelin

I cluster Apache Spark in HDInsight nel servizio Azure Kubernetes includono notebook Apache Zeppelin. Usare i notebook per eseguire processi Apache Spark. In questo articolo, imparerai come utilizzare il notebook Zeppelin su un cluster HDInsight su AKS.

Prerequisiti

Un cluster Apache Spark su HDInsight su AKS. Per istruzioni, vedere Creare un cluster Apache Spark.

Avvia un notebook Apache Zeppelin

  1. Passare alla pagina Panoramica del cluster Apache Spark, poi selezionare il notebook Zeppelin dai dashboard del cluster. Richiede di eseguire l'autenticazione e aprire la pagina Zeppelin.

    Screenshot di come selezionare Zeppelin.

  2. Creare un nuovo notebook. Nel riquadro dell'intestazione, passare a Notebook >, quindi creare una nuova nota. Verificare che l'intestazione del notebook mostri uno stato connesso. Indica un punto verde nell'angolo superiore destro.

    Screenshot di come creare un notebook zeppelin.

  3. Eseguire il codice seguente in Zeppelin Notebook:

    %livy.pyspark
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Selezionare il pulsante Play per eseguire il frammento di codice nel paragrafo. Lo stato sull'angolo destro del paragrafo deve passare da READY, PENDING, RUNNING a FINISHED. L'output viene visualizzato nella parte inferiore dello stesso paragrafo. Lo screenshot è simile all'immagine seguente:

    Screenshot di come eseguire il notebook Zeppelin.

    Prodotto:

    Screenshot dell'output del notebook Zeppelin.

Uso dei lavori di submit di Spark

  1. Creare un file usando il comando "#vim samplefile.py" seguente

  2. Questo comando apre il file vim

  3. Incollare il codice seguente nel file vim

    import pandas as pd
    import matplotlib.pyplot as plt
    
    From pyspark.sql import SparkSession
    Spark = SparkSession.builder.master('yarn').appName('SparkSampleCode').getOrCreate()
    # Initialize spark context
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
     s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. Salvare il file con il metodo seguente.

    1. Premere il pulsante Escape
    2. Immettere il comando :wq
  5. Eseguire il comando seguente per eseguire l'attività.

    /spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py

    Screenshot che mostra come eseguire il lavoro di submit Spark.

Monitorare le query in un cluster Apache Spark in HDInsight nel servizio Azure Kubernetes

Interfaccia utente della cronologia Spark

  1. Fare clic sull'interfaccia utente del server cronologia Spark nella scheda Panoramica.

    Screenshot che mostra l'interfaccia utente di Spark.

  2. Selezionare l'esecuzione recente dall'interfaccia utente usando lo stesso ID applicazione.

    Screenshot che mostra come eseguire l'interfaccia utente di Spark.

  3. Visualizzare i cicli del grafico aciclico diretto e le fasi del processo nell'interfaccia utente del server cronologia Spark.

    Screenshot del ciclo DAG.

interfaccia utente per la sessione Livy

  1. Per aprire l'interfaccia utente della sessione Livy, digitare il comando seguente nel browser https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    Screenshot di come aprire l'interfaccia utente della sessione livy.

  2. Visualizzare i log del driver facendo clic sull'opzione driver nei log.

Interfaccia Utente Yarn

  1. Nella scheda Panoramica fare clic su Yarn e aprire l'interfaccia utente di Yarn.

    Screenshot di come selezionare l'interfaccia utente di Yarn.

  2. È possibile tenere traccia del processo eseguito di recente utilizzando lo stesso ID applicazione.

  3. Fai clic sull'ID dell'applicazione in Yarn per visualizzare i log dettagliati dell'operazione.

    Visualizzare i log.

Riferimento