Saltar al contenido

¿Cómo modifico la configuración de Spark en mi espacio de trabajo de Amazon EMR Studio?

3 minutos de lectura
0

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:

  1. 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.

  2. 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.

  3. 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

OFICIAL DE AWSActualizada hace 2 años