Solución de problemas de Apache Spark mediante Azure HDInsight

Conozca los principales problemas y sus soluciones al trabajar con cargas útiles de Apache Spark en Apache Ambari.

¿Cómo se configura una aplicación de Apache Spark mediante Apache Ambari en clústeres?

Los valores de configuración de Spark se pueden ajustar para ayudar a evitar una excepción OutofMemoryError de aplicación de Apache Spark. Los pasos siguientes muestran los valores de configuración predeterminados de Spark en Azure HDInsight:

  1. Inicie sesión en Ambari en https://CLUSTERNAME.azurehdidnsight.net con las credenciales del clúster. La pantalla inicial muestra un panel de información general. Hay ligeras diferencias cosméticas entre HDInsight 4.0.

  2. Vaya a Spark2>Configs (Configuraciones).

    Select the Configs tab.

  3. En la lista de configuraciones, seleccione y expanda Custom-spark2-defaults.

  4. Busque el valor de configuración que tiene que ajustar, por ejemplo spark.executor.memory. En este caso, el valor de 9728m es demasiado alto.

    Select custom-spark-defaults.

  5. Establezca el valor en la configuración recomendada. Se recomienda el valor de 2048m para esta configuración.

  6. Guarde el valor y, después, guarde la configuración. Seleccione Guardar.

    Change value to 2048m.

    Escriba una nota sobre los cambios de configuración y, después, seleccione Guardar.

    Enter a note about the changes you made.

    Se le notificará si hay configuraciones que necesiten atención. Tenga en cuenta los elementos y, a continuación, seleccione Proceed Anyway (Continuar de todos modos).

    Select Proceed Anyway.

  7. Cada vez que se guarda una configuración, se le solicitará que reinicie el servicio. Seleccione Reiniciar.

    Select restart.

    Confirme el reinicio.

    Select Confirm Restart All.

    Puede revisar los procesos en ejecución.

    Review running processes.

  8. Puede agregar configuraciones. En la lista de configuraciones, seleccione Custom-spark2-defaults y, a continuación, seleccione Agregar propiedad.

    Select add property.

  9. Defina una nueva propiedad. Puede definir una propiedad única mediante un cuadro de diálogo para valores específicos como el tipo de datos. O bien, puede definir varias propiedades mediante una definición por línea.

    En este ejemplo, se define la propiedad spark.driver.memory con un valor de 4g.

    Define new property.

  10. Guarde la configuración y, a continuación, reinicie el servicio, como se describe en los pasos 6 y 7.

Estos cambios son para todo el clúster, pero se pueden invalidar al enviar el trabajo de Spark.

¿Cómo se configura una aplicación de Apache Spark mediante un cuaderno de Jupyter Notebook en clústeres?

En la primera celda del cuaderno de Jupyter Notebook, después de la directiva %%configure, especifique las configuraciones de Spark en formato JSON válido. Cambie los valores reales según sea necesario:

Add a configuration.

¿Cómo se configura una aplicación de Apache Spark mediante Apache Livy en clústeres?

Envíe la aplicación Spark a Livy mediante un cliente REST como cURL. Use un comando similar al siguiente. Cambie los valores reales según sea necesario:

curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'  

¿Cómo se configura una aplicación de Apache Spark mediante spark-submit en clústeres?

Inicie spark-shell mediante un comando similar al siguiente. Cambie el valor real de las configuraciones según sea necesario:

spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar

Lectura adicional

Apache Spark job submission on HDInsight clusters (Envío de trabajos de Apache Spark en clústeres de HDInsight)

Pasos siguientes

Si su problema no aparece o es incapaz de resolverlo, visite uno de nuestros canales para obtener ayuda adicional: