Apéndice A. Ajuste, depuración y otras cosas que a los desarrolladores les gusta fingir que no existen
Ajuste de Spark y dimensionamiento del clúster
Recuerda de nuestra discusión sobre los aspectos internos de Spark en el Capítulo 2que SparkSession o SparkContext contiene la configuración de Spark, que especifica cómo se lanzará una aplicación. La mayoría de las configuraciones de Spark sólo pueden ajustarse a nivel de aplicación. Estas configuraciones pueden tener un gran impacto en la velocidad de un trabajo y en sus posibilidades de completarse. La configuración por defecto de Spark está diseñada para garantizar que los trabajos puedan enviarse en clusters muy pequeños, y no se recomienda para producción.
La mayoría de las veces habrá que cambiar estos ajustes para utilizar los recursos que tienes disponibles y, a menudo, para permitir que el trabajo se ejecute. Spark proporciona un control bastante finito de cómo está configurado nuestro entorno, y a menudo podemos mejorar el rendimiento de un trabajo a escala ajustando estos parámetros. Por ejemplo, en el Capítulo 6, explicamos que los errores de falta de memoria en los ejecutores era una causa común de fallo de los trabajos Spark. Aunque lo mejor es centrarse en las técnicas presentadas en los capítulos anteriores para evitar la desviación de datos y los costosos barajados, utilizar menos ejecutores de mayor tamaño también puede evitar fallos.
Configurar un trabajo Spark es tanto un arte como una ciencia. Elegir una configuración ...