¿Cómo limita Spark el uso de núcleos de CPU y memoria? ¿Utiliza cgroups? ¿Qué hay de hilo?
En el clúster independiente, Spark solo administra las configuraciones de recursos predefinidos de la aplicación con el grupo de recursos proporcionado. Grupo de recursos combinado en función de los ejecutores que se agregaron como salvas al clúster. Yarn usa contenedores y la limitación de recursos aplica la configuración del contenedor que define la asignación mínima y máxima de núcleo y memoria.
En YARN NodeManager está monitoreando el uso de memoria de los ejecutores de chispa y los mata si usan por encima de spark.executor.memory
En el caso de la CPU, spark.executor.cores es la cantidad de tareas simultáneas que puede ejecutar el ejecutor. Más información sobre la documentación de configuración de Spark
Puede habilitar cgroups en yarn y limitar el uso de CPU o contenedores YARN (ejecutores de chispa).