Estrategias de resolución de problemas de chispa, sin ningún orden en particular:
- Añadir más registro.
- Haga una hoja de cálculo de una matriz de configuración de memoria de ejecutor y estrategias de almacenamiento en caché. Prueba metódicamente cada uno.
- Divide el programa en funciones más pequeñas y encadéalas. Haga que cada tarea haga menos trabajo para que el trabajo pueda escalarse horizontalmente.
- Encuentre los casos más avanzados que el trabajo podría tener al pensar de forma creativa o mediante pruebas basadas en propiedades.
- Use “yarn application -log ” para recopilar todos los registros de todos los datanodes a la vez. Muy a menudo hay mensajes aquí que normalmente no ves haciendo clic en la interfaz de usuario. Esto solo funciona cuando la aplicación ha salido.
- Verifique que el trabajo esté equilibrado y que cada ejecutor esté obteniendo la misma cantidad de datos de entrada, ejecutándose casi al mismo tiempo y barajando aproximadamente la misma cantidad.
¡No te rindas! También me sentí frustrado por la depuración de Spark, pero luego fui recompensado después de la perseverancia.