Quiero modificar la configuración de Spark en mi espacio de trabajo de Amazon EMR Studio.
Descripción corta
Para personalizar la configuración de Spark para clústeres remotos de Amazon Elastic Compute Cloud (Amazon EC2) o EMR sin servidor, usa los comandos de Sparkmagic para cambiar executorMemory, executorCores y la asignación de recursos.
Para los clústeres remotos de Amazon Elastic Kubernetes Service (Amazon EKS), define la configuración de Spark en el objeto SparkContext. Amazon EKS no admite los comandos de Sparkmagic. Para obtener más información, consulta Consideraciones y limitaciones.
Resolución
Personalización de la configuración de Spark para los clústeres remotos de Amazon EC2 o EMR sin servidor
Sigue estos pasos:
-
Para modificar la configuración del trabajo, ejecuta el comando %%configure en la celda del espacio de trabajo.
Ejemplo:
%%configure -f
{"executorMemory":"4G"}
Nota: En el ejemplo anterior, executorMemory se modifica para el trabajo de Spark.
-
Para configuraciones adicionales que pases con la opción -conf, usa un objeto JSON anidado.
Nota: Para pasar un objeto a un SparkContext o Sparksession, usa -conf en lugar de conf. Para obtener más información, consulta Spark configuration (Configuración de Spark) en el sitio web de Apache Livy.
-
Ejemplo:
%%configure -f
{
"driverMemory": "4G",
"driverCores": 4,
"executorMemory" : "8G",
"executorCores": 2,
"conf": {
"spark.dynamicAllocation.maxExecutors" : 10,
"spark.dynamicAllocation.minExecutors": 1
}
}
Para personalizar la configuración de Spark en un espacio de trabajo que esté conectado a un clúster de Amazon EKS, define la configuración de Spark en el objeto SparkContext:
spark.conf.set("spark.executor.memory", "8g")
Confirmación de la configuración de Spark
Haz lo siguiente:
-
Para Amazon EC2 y EMR sin servidor, ejecuta el comando %%info en el espacio de trabajo del cliente:
Resultado de ejemplo:
Current session configs: {'driverMemory': '4G', 'driverCores': 4, 'executorMemory': '8G', 'executorCores': 2, 'conf': {'spark.dynamicAllocation.maxExecutors': 10, 'spark.dynamicAllocation.minExecutors': 1}, 'proxyUser': 'assumed-role_Admin_biditdas-Isengard', 'kind': 'pyspark'}
-
Para Amazon EC2, comprueba los registros en /var/log/livy/livy-livy-server.out en el nodo maestro del clúster. Si se inició una sesión de Spark, verás una entrada de registro similar a la siguiente:
20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]
-
Para Amazon EKS, utiliza la interfaz de usuario de Spark.
Información relacionada
Mejore los núcleos con magia comandos en EMR Studio
REST API (API de REST) en el sitio web de Apache Livy
Features available with the new kernels (Características disponibles con los nuevos kernels) en el sitio web de GitHub