Lo estoy pasando muy mal con Spark. ¿Hay alguna alternativa válida para ello?

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.

Solo puedo estar de acuerdo con las otras respuestas. Si estás atascado con Spark, la razón está obviamente en tu implementación. Trabajo con Spark todos los días y tengo algunas críticas sobre algún mensaje de error y demás. Lo creas o no, todos nos quedamos estancados en un punto. Pero, sin embargo, encuentro que es muy fácil depurar a spark cuando entiendes que es interno, como cualquier otro framework.

La complejidad comienza cuando se usa con administradores de recursos como YARN o Mesos, pero una vez más no es culpa de la chispa. Los errores de YARN no son tan obvios de captar, incluso para los mejores de nosotros a veces. Una vez, he bloqueado una semana por un error tonto donde los registros de YARN me engañaban.

Debería esperar que suceda este tipo de cosas cuando trate con sistemas complejos.

También debe comprender y saber cómo usar el generador de perfiles o herramientas de monitoreo como jvisualm o ganglios.

La codificación con chispa es tan simple como puede ser, pero la aplicación de big data crece fuera del alcance de una aplicación simple y se convierte en una arquitectura. Entonces, ya sea que use Spark, Flink, Pregel o X, la complejidad en la construcción del sistema seguirá siendo la misma.

Con todo lo dicho, la comunidad Spark es bastante activa en brindar ayuda a los usuarios, ya sea en la lista de correo o en Stackoveflow. Así que no debes dudar en hacer preguntas.

[descargo de responsabilidad: estoy en el 10% superior de respuestas en la etiqueta apache-spark de Stackoveflow – eliasah]

Espero que esto responda a tu pregunta.

Hay Amazon Elastic MapReduce (EMR) – Servicios web de Amazon pero sospecho que es su implementación. La chispa es comparativamente ligera. ¿Puedes leer los mensajes de registro de depuración a través de Yarn?

Terminé modificando mi configuración de log4j para usar stdout para que los registros aparezcan en los registros de la aplicación Yarn.

Sospecho que su implementación es la causa. Apache Spark es utilizado por miles de compañías (también en producción) y está utilizando la versión más estable disponible. Compruebe su junta JIRA para cualquier problema conocido que se aborda en 2.0.

No veo una razón por la cual Spark podría causar este problema.