Perfila el uso de recursos de Dataproc Serverless para Spark

Cloud Profiler reúne e informa continuamente el uso de CPU de la aplicación y la información de asignación de memoria. Puedes habilitar la generación de perfiles cuando envías un lote o creas una carga de trabajo de sesión con las propiedades de creación de perfiles que se enumeran en la siguiente tabla. Dataproc Serverless para Spark agrega opciones de JVM relacionadas a spark.driver.extraJavaOptions y spark.executor.extraJavaOptions parámetros de configuración usados para la carga de trabajo.

Opción Descripción Valor Predeterminado
dataproc.profiling.enabled Habilitar la creación de perfiles de la carga de trabajo true o false false
dataproc.profiling.name Nombre del perfil en el servicio del generador de perfiles PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID, donde:
  • WORKLOAD_TYPE se estableció en batch o session.
  • WORKLOAD_ID se establece en batchId o sessionId.

Notas:

  • Dataproc Serverless para Spark configura la versión del generador de perfiles en el UUID por lotes o el UUID de sesión.
  • Profiler admite los siguientes tipos de cargas de trabajo de Spark: Spark, PySpark, SparkSql y SparkR.
  • Una carga de trabajo debe ejecutarse durante más de tres minutos para permitir que Profiler recopile y suba datos a un proyecto.
  • Para anular las opciones de generación de perfiles enviadas con una carga de trabajo, crea un SparkConf y, luego, configura extraJavaOptions en tu código. Ten en cuenta que configurar las propiedades extraJavaOptions cuando se envía la carga de trabajo no anula las opciones de generación de perfiles que se envían con la carga de trabajo.

Para ver un ejemplo de las opciones del generador de perfiles que se usan con un envío por lotes, consulta el ejemplo de carga de trabajo por lotes de PySpark.

Habilita la generación de perfiles

Completa los siguientes pasos para habilitar la generación de perfiles en una carga de trabajo:

  1. Habilita el generador de perfiles.
  2. Si usas una cuenta de servicio de VM personalizada, otorga el rol de Agente de Cloud Profiler a la cuenta de servicio de VM personalizada. Este rol contiene los permisos necesarios del generador de perfiles.
  3. Establece las propiedades de creación de perfiles cuando enviar una carga de trabajo por lotes o crea una plantilla de sesión.

Ejemplo de carga de trabajo por lotes de PySpark

En el siguiente ejemplo, se usa gcloud CLI para enviar un lote de PySpark carga de trabajo con la generación de perfiles habilitada.

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

Se crean dos perfiles:

  • PROFILE_NAME-driver para generar un perfil de las tareas del controlador Spark
  • PROFILE_NAME-executor para generar perfiles de tareas del ejecutor de spark

Ver perfiles

Puedes ver los perfiles del generador de perfiles en la consola de Google Cloud.

¿Qué sigue?