Compartir vía


Envío y administración de trabajos en un clúster de Apache Spark™ en HDInsight en AKS

Nota:

Retiraremos Azure HDInsight en AKS el 31 de enero de 2025. Antes del 31 de enero de 2025, deberá 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. Los clústeres restantes de la suscripción se detendrán y quitarán del host.

Solo el soporte técnico básico estará disponible hasta la fecha de retirada.

Importante

Esta funcionalidad actualmente está en su versión preliminar. En Términos de uso complementarios para las versiones preliminares de Microsoft Azure encontrará más términos legales que se aplican a las características de Azure que están en versión beta, en versión preliminar, o que todavía no se han lanzado con disponibilidad general. Para más información sobre esta versión preliminar específica, consulte la Información de Azure HDInsight sobre la versión preliminar de AKS. Para plantear preguntas o sugerencias sobre la característica, envíe una solicitud en AskHDInsight con los detalles y síganos para obtener más actualizaciones en la 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
  • uso de ssh (spark-submit)

Uso de Jupyter

Requisitos previos

Un clúster de Apache Spark™ en HDInsight en AKS. Para obtener 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. Hacer clic en Jupyter, le pide que autentique y abra la página web de Jupyter.

    Captura de pantalla de cómo seleccionar un cuaderno de Jupyter

  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 la sesión explícitamente.

  3. Pegue el código siguiente en una celda vacía del cuaderno de Jupyter Notebook y presione MAYÚS + ENTRAR para ejecutarlo. 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 cuaderno

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

  2. Apague el cuaderno para liberar los recursos del clúster: en la barra de menús del cuaderno, 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 cuadernos

Uso de cuadernos de Apache Zeppelin

Los clústeres de Apache Spark de HDInsight en AKS incluyen cuadernos de Apache Zeppelin. Use los cuadernos para ejecutar los trabajos de Apache Spark. En este artículo, aprenderá a usar el cuaderno de Zeppelin en un clúster de HDInsight en AKS.

Requisitos previos

Un clúster de Apache Spark en HDInsight en AKS. Para obtener instrucciones, consulte Creación de un clúster de Apache Spark.

Inicio de un cuaderno de Apache Zeppelin

  1. Vaya a la página Información general del clúster de Apache Spark y seleccione Cuaderno de Zeppelin en Paneles de clúster. Se le pide que se autentique y abra la página de Zeppelin.

    Captura de pantalla de cómo seleccionar Zeppelin

  2. Creación de un cuaderno. En el panel de encabezado, vaya a Notebook > Crear nueva nota. Por otro lado, asegúrese de que en el encabezado del cuaderno aparece el 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 el Cuaderno de Zeppelin:

    %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 que el párrafo ejecute el fragmento de código. El estado en la esquina derecha del párrafo debería avanzar de READY (Listo), PENDING (Pendiente) o RUNNING (En ejecución) a FINISHED (Finalizado). El resultado se muestra en la parte inferior del mismo párrafo. La captura de pantalla es similar a esta imagen:

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

    Salida:

    Captura de pantalla de la salida del cuaderno de Zeppelin

Uso de enviar trabajos de Spark

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

Supervisión de 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 de la interfaz de usuario con el mismo identificador 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 de controladores, haga clic en la opción controlador en 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.

    Visualización de registros

Referencia