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
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.
Nella pagina Web di Jupyter selezionare Nuovo > PySpark per creare un notebook.
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.
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.
%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'])
Tracciare un grafico con stipendio e età come assi X e Y
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()
Salvare il notebook
Dalla barra dei menu del notebook, passare a File > Salva e checkpoint.
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.
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
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.
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.
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'])
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:
Prodotto:
Uso dei lavori di submit di Spark
Creare un file usando il comando "#vim samplefile.py" seguente
Questo comando apre il file vim
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'])
Salvare il file con il metodo seguente.
- Premere il pulsante Escape
- Immettere il comando
:wq
Eseguire il comando seguente per eseguire l'attività.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Monitorare le query in un cluster Apache Spark in HDInsight nel servizio Azure Kubernetes
Interfaccia utente della cronologia Spark
Fare clic sull'interfaccia utente del server cronologia Spark nella scheda Panoramica.
Selezionare l'esecuzione recente dall'interfaccia utente usando lo stesso ID applicazione.
Visualizzare i cicli del grafico aciclico diretto e le fasi del processo nell'interfaccia utente del server cronologia Spark.
interfaccia utente per la sessione Livy
Per aprire l'interfaccia utente della sessione Livy, digitare il comando seguente nel browser
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Visualizzare i log del driver facendo clic sull'opzione driver nei log.
Interfaccia Utente Yarn
Nella scheda Panoramica fare clic su Yarn e aprire l'interfaccia utente di Yarn.
È possibile tenere traccia del processo eseguito di recente utilizzando lo stesso ID applicazione.
Fai clic sull'ID dell'applicazione in Yarn per visualizzare i log dettagliati dell'operazione.
Riferimento
- Apache, Apache Spark, Spark e i nomi dei progetti open source associati sono marchi dell' Apache Software Foundation (ASF).