Enviar y administrar trabajos en un clúster de Apache Spark™ en HDInsight en AKS
Importante
Azure HDInsight en AKS se retiró el 31 de enero de 2025. Consiga información adicional con este anuncio.
Debe migrar las cargas de trabajo a microsoft Fabric o un producto equivalente de Azure para evitar la terminación repentina de las cargas de trabajo.
Importante
Esta característica está actualmente en versión preliminar. Los Términos de uso complementarios para las versiones preliminares de Microsoft Azure incluyen más términos legales que se aplican a las características de Azure que se encuentran en versión beta, en versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general. Para obtener información sobre esta versión preliminar específica, consulte información de la versión preliminar de Azure HDInsight en AKS. Para preguntas o sugerencias de características, envíe una solicitud en AskHDInsight con los detalles y siganos para obtener más actualizaciones sobre comunidad de Azure HDInsight.
Una vez creado el clúster, el usuario puede usar varias interfaces para enviar y administrar trabajos mediante
- uso de Jupyter
- uso de Zeppelin
- utilizando ssh (spark-submit)
Uso de Jupyter
Prerrequisitos
Un clúster de Apache Spark™ en HDInsight en AKS. Para más información, consulte Creación de un clúster de Apache Spark.
Jupyter Notebook es un entorno de cuaderno interactivo que admite varios lenguajes de programación.
Creación de un cuaderno de Jupyter Notebook
Vaya a la página del clúster de Apache Spark™ y abra la pestaña Información general de . Haga clic en Jupyter, le pide que autentique y abra la página web de Jupyter.
En la página web de Jupyter, seleccione Nuevo > PySpark para crear un cuaderno.
Nuevo cuaderno creado y abierto con el nombre
Untitled(Untitled.ipynb)
.Nota
Con pySpark o el kernel de Python 3 para crear un cuaderno, la sesión de Spark se crea automáticamente al ejecutar la primera celda de código. No es necesario crear explícitamente la sesión.
Pegue el código siguiente en una celda vacía del cuaderno de Jupyter Notebook y presione MAYÚS + ENTRAR para ejecutar el código. Consulte aquí para obtener más controles en 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'])
Trazar un gráfico con Salario y edad como ejes X e Y
En el mismo cuaderno, pegue el código siguiente en una celda vacía del cuaderno de Jupyter Notebook y presione MAYÚS + ENTRAR para ejecutar el código.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
Guardar el bloc de notas
En la barra de menús del cuaderno, vaya a Archivo > Guardar y punto de control.
Apague el bloc de notas para liberar los recursos del clúster: en la barra de menús del bloc de notas, vaya a Archivo > Cerrar y detener. También puede ejecutar cualquiera de los cuadernos en la carpeta de ejemplos.
Uso de cuadernos de Apache Zeppelin
Los clústeres de Apache Spark en HDInsight en AKS incluyen cuadernos de Apache Zeppelin. Use los cuadernos para ejecutar trabajos de Apache Spark. En este artículo, aprenderá a usar el cuaderno de Zeppelin en un clúster de HDInsight en AKS.
Prerrequisitos
Un clúster de Apache Spark en HDInsight en AKS. Para obtener instrucciones, consulte Creación de un clúster de Apache Spark.
Lanzar un cuaderno de Apache Zeppelin
Vaya a la página Vista general del clúster de Apache Spark y seleccione el cuaderno de Zeppelin en los paneles del clúster. Se le pide que se autentique y abra la página de Zeppelin.
Cree un cuaderno. En el panel de encabezado, vaya a Notebook > Crear nueva nota. Asegúrese de que el encabezado del cuaderno muestra un estado conectado. Denota un punto verde en la esquina superior derecha.
Ejecute el código siguiente en 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'])
Seleccione el botón Reproducir para ejecutar el fragmento del párrafo. El estado en la esquina superior derecha del párrafo debe avanzar de LISTO, PENDIENTE, EJECUTÁNDOSE a FINALIZADO. La salida se muestra en la parte inferior del mismo párrafo. La captura de pantalla es similar a la siguiente imagen:
Salida:
Envío de trabajos con Spark
Cree un archivo con el siguiente comando "#vim samplefile.py".
Este comando abre el archivo vim.
Pegue el código siguiente en el archivo 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'])
Guarde el archivo con el método siguiente.
- Presione el botón Escape
- Escriba el comando
:wq
Ejecute el siguiente comando para ejecutar el trabajo.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
Supervisar consultas en un clúster de Apache Spark en HDInsight en AKS
Interfaz de usuario del historial de Spark
Haga clic en la interfaz de usuario del servidor de historial de Spark en la pestaña información general.
Seleccione la ejecución reciente desde el UI usando el mismo ID de aplicación.
Vea los ciclos del grafo Acíclico dirigido y las fases del trabajo en la interfaz de usuario del servidor de historial de Spark.
Interfaz de usuario de sesión de Livy
Para abrir la interfaz de usuario de sesión de Livy, escriba el siguiente comando en el explorador
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
Para ver los registros del controlador, haga clic en la opción del controlador en los registros.
Interfaz de usuario de Yarn
En la pestaña Información general, haga clic en Yarn y abra la interfaz de usuario de Yarn.
Puede realizar un seguimiento del trabajo que ejecutó recientemente con el mismo identificador de aplicación.
Haga clic en el identificador de aplicación de Yarn para ver los registros detallados del trabajo.
Referencia
- Los nombres de proyecto de código abierto asociados, Apache Spark, Apache Spark y son marcas comerciales de la de Apache Software Foundation (ASF) de.