Partekatu honen bidez:


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

  1. 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.

    Captura de pantalla de cómo seleccionar Jupyter Notebook.

  2. En la página web de Jupyter, seleccione Nuevo > PySpark para crear un cuaderno.

    Captura de pantalla de la nueva página pySpark.

    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.

  3. 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.

    Captura de pantalla de la página pySpark con contenido.

    %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. Trazar un gráfico con Salario y edad como ejes X e Y

  5. 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()
    

    Captura de pantalla de la salida del grafo.

Guardar el bloc de notas

  1. En la barra de menús del cuaderno, vaya a Archivo > Guardar y punto de control.

  2. 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.

    Captura de pantalla de cómo guardar los libros de notas.

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

  1. 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.

    Captura de pantalla de cómo seleccionar Zeppelin.

  2. 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.

    Captura de pantalla de cómo crear un cuaderno de zeppelin.

  3. 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'])
    
  4. 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:

    Captura de pantalla de cómo ejecutar el cuaderno de Zeppelin.

    Salida:

    Captura de pantalla de la salida del cuaderno de Zeppelin.

Envío de trabajos con Spark

  1. Cree un archivo con el siguiente comando "#vim samplefile.py".

  2. Este comando abre el archivo vim.

  3. 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'])
    
  4. Guarde el archivo con el método siguiente.

    1. Presione el botón Escape
    2. Escriba el comando :wq
  5. Ejecute el siguiente comando para ejecutar el trabajo.

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

    Captura de pantalla que muestra cómo ejecutar el trabajo de envío de Spark.

Supervisar consultas en un clúster de Apache Spark en HDInsight en AKS

Interfaz de usuario del historial de Spark

  1. Haga clic en la interfaz de usuario del servidor de historial de Spark en la pestaña información general.

    Captura de pantalla que muestra la interfaz de usuario de Spark.

  2. Seleccione la ejecución reciente desde el UI usando el mismo ID de aplicación.

    Captura de pantalla que muestra cómo ejecutar la interfaz de usuario de Spark.

  3. Vea los ciclos del grafo Acíclico dirigido y las fases del trabajo en la interfaz de usuario del servidor de historial de Spark.

    Captura de pantalla del ciclo de DAG.

Interfaz de usuario de sesión de Livy

  1. 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

    Captura de pantalla de cómo abrir la interfaz de usuario de sesión de Livy.

  2. Para ver los registros del controlador, haga clic en la opción del controlador en los registros.

Interfaz de usuario de Yarn

  1. En la pestaña Información general, haga clic en Yarn y abra la interfaz de usuario de Yarn.

    Captura de pantalla de cómo seleccionar la interfaz de usuario de Yarn.

  2. Puede realizar un seguimiento del trabajo que ejecutó recientemente con el mismo identificador de aplicación.

  3. Haga clic en el identificador de aplicación de Yarn para ver los registros detallados del trabajo.

    Ver registros.

Referencia