Compartir a través de


Error de depuración de trabajos de Spark con Azure Toolkit for IntelliJ (versión preliminar)

En este artículo se proporcionan instrucciones paso a paso sobre cómo usar las herramientas de HDInsight de Azure Toolkit for IntelliJ para ejecutar aplicaciones de depuración de errores de Spark.

Requisitos previos

Creación de un proyecto con la plantilla de depuración

Cree un proyecto de Spark 2.3.2 para continuar con la depuración de errores; use el archivo de ejemplo de depuración de tareas de este documento.

  1. Abra IntelliJ IDEA. Abra la ventana New Project (Nuevo proyecto).

    a. Seleccione Azure Spark/HDInsight en el panel izquierdo.

    b. Seleccione Spark Project with Failure Task Debugging Samples (Preview) (Scala) (Proyecto de Spark con ejemplos de depuración de tareas de error [versión preliminar] [Scala]) en la ventana principal.

    Intellij Create a debug project.

    c. Seleccione Next (Siguiente).

  2. En la ventana Nuevo proyecto, siga estos pasos:

    Intellij New Project select Spark version.

    a. Escriba un nombre y una ubicación de proyecto.

    b. En la lista desplegable Project SDK (SDK del proyecto), seleccione Java 1.8 para el clúster de Spark 2.3.2.

    c. En la lista desplegable Spark Version (Versión de Spark), seleccione Spark 2.3.2(Scala 2.11.8) .

    d. Seleccione Finalizar.

  3. Seleccione src>main>scala para abrir el código en el proyecto. En este ejemplo se usa el script AgeMean_Div() .

Ejecución de una aplicación Scala o Java de Spark en un clúster de HDInsight

Cree una aplicación de Scala o Java de Spark, y después ejecútela en un clúster de Spark mediante estos pasos:

  1. Haga clic en Add Configuration (Agregar configuración) para abrir la ventana Run/Debug Configurations (Ejecutar/depurar configuraciones).

    HDI Intellij Add configuration.

  2. En el cuadro de diálogo Run/Debug Configurations (Ejecutar/depurar configuraciones), seleccione el signo más (+). Después, seleccione la opción Apache Spark on HDInsight (Apache Spark en HDInsight).

    Intellij Add new configuration.

  3. Cambie a la pestaña Remotely Run in Cluster (Ejecutar de forma remota en clúster). Escriba la información en los campos Name (Nombre), Spark cluster (Clúster de Spark) y Main class name (Nombre de clase principal). Nuestras herramientas admiten la depuración con ejecutores. El valor predeterminado de numExectors es 5, y se recomienda no establecerlo por encima de 3. Para reducir el tiempo de ejecución, puede agregar spark.yarn.maxAppAttempts a job Configurations y establecer el valor en 1. Haga clic en el botón Aceptar para guardar la configuración.

    Intellij Run debug configurations new.

  4. La configuración se guarda ahora con el nombre especificado. Para ver los detalles de configuración, seleccione el nombre de configuración. Para realizar cambios, seleccione Edit Configurations (Editar configuraciones).

  5. Después de completar la configuración, puede ejecutar el proyecto en el clúster remoto.

    Intellij Debug Remote Spark Job Remote run button.

  6. Puede comprobar el identificador de la aplicación en la ventana de salida.

    Intellij Debug Remote Spark Job Remote run result.

Error en la descarga del perfil de trabajo

Si se produce un error al enviar el trabajo, puede descargar el perfil de trabajo con errores en el equipo local para depurarlo más.

  1. Abra el Explorador de Storage de Microsoft Azure, busque la cuenta de HDInsight del clúster del trabajo con errores, descargue los recursos de trabajo con errores desde la ubicación correspondiente: \hdp\spark2-events\.spark-failures\<id. de la aplicación> a una carpeta local. En la ventana activities (Actividades) se mostrará el progreso de la descarga.

    Azure Storage Explorer download failure.

    Azure Storage Explorer download success.

Configuración del entorno de depuración local y depuración en caso de error

  1. Abra el proyecto original, o bien cree uno y asócielo al código fuente original. Actualmente solo se admite la versión spark2.3.2 para la depuración de errores.

  2. En IntelliJ IDEA, cree un archivo de configuración Spark Failure Debug (Depuración de errores de Spark) y seleccione el archivo FTD de los recursos de trabajo con errores que ha descargado antes para el campo Spark Job Failure Context location (Ubicación del contexto de error del trabajo de Spark).

    crete failure configuration.

  3. Haga clic en el botón de ejecución local en la barra de herramientas; el error se mostrará en la ventana de ejecución.

    run-failure-configuration1.

    run-failure-configuration2.

  4. Establezca el punto de interrupción como se indica en el registro y, después, haga clic en el botón depuración local para realizar la depuración local como en los proyectos normales de Scala o Java en IntelliJ.

  5. Después de la depuración, si el proyecto se completa de forma correcta, puede volver a enviar el trabajo con error al clúster de Spark en HDInsight.

Pasos siguientes

Escenarios

Creación y ejecución de aplicaciones

Herramientas y extensiones

Administrar recursos