Crear perfiles de uso de recursos de Google Cloud Serverless para Apache Spark

En este documento se describe cómo crear perfiles de uso de recursos de Google Cloud Serverless para Apache Spark. Cloud Profiler recoge información sobre el uso de la CPU y la asignación de memoria de las aplicaciones y genera informes al respecto de forma continua. Puede habilitar la creación de perfiles al enviar un lote o crear una carga de trabajo de sesión mediante las propiedades de creación de perfiles que se indican en la siguiente tabla. Google Cloud Sin servidor para Apache Spark añade opciones de JVM relacionadas a las configuraciones spark.driver.extraJavaOptions y spark.executor.extraJavaOptions que se usan en 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 Profiler PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID, donde:
  • WORKLOAD_TYPE se ha definido como batch o session
  • WORKLOAD_ID tiene el valor batchId o sessionId

Notas:

  • Sin servidor para Apache Spark define la versión del generador de perfiles como el UUID del lote o el UUID de la sesión.
  • Profiler admite los siguientes tipos de carga de trabajo de Spark: Spark, PySpark, SparkSql y SparkR.
  • Una carga de trabajo debe ejecutarse durante más de tres minutos para que Profiler pueda recoger y subir datos a un proyecto.
  • Puedes anular las opciones de creación de perfiles enviadas con una carga de trabajo creando un SparkConf y, a continuación, configurando extraJavaOptions en tu código. Ten en cuenta que, si se definen propiedades de extraJavaOptions cuando se envía la carga de trabajo, no se anularán las opciones de creación de perfiles enviadas con la carga de trabajo.

Para ver un ejemplo de opciones de creación de perfiles que se usan con un envío por lotes, consulta el ejemplo de carga de trabajo por lotes de PySpark.

Habilitar la creación de perfiles

Sigue estos pasos para habilitar la creació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 Agente de Cloud Profiler a la cuenta de servicio de VM personalizada. Este rol contiene los permisos de Profiler necesarios.
  3. Define las propiedades de creación de perfiles cuando envíes una carga de trabajo por lotes o crees una plantilla de sesión.

Ejemplo de carga de trabajo por lotes de PySpark

En el siguiente ejemplo se usa la CLI de gcloud para enviar una carga de trabajo por lotes de PySpark con la creació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 crear perfiles de tareas de controladores de Spark
  • PROFILE_NAME-executor para crear perfiles de tareas de ejecutores de Spark

Ver perfiles

Puedes ver los perfiles desde Profiler en la consola Google Cloud .

Siguientes pasos