本文档介绍了如何分析 Google Cloud 无服务器 Apache Spark 的资源使用情况。Cloud Profiler 会持续收集和报告应用的 CPU 使用率和内存分配信息。您可以在提交批处理或创建会话工作负载时,使用下表中列出的分析属性来启用分析。
Google Cloud Serverless for Apache Spark 会将相关的 JVM 选项附加到用于工作负载的 spark.driver.extraJavaOptions
和 spark.executor.extraJavaOptions
配置中。
选项 | 说明 | 值 | 默认 |
---|---|---|---|
dataproc.profiling.enabled |
启用工作负载分析 | true 或 false |
false |
dataproc.profiling.name |
Profiler 服务上的配置文件名称 | PROFILE_NAME | spark-WORKLOAD_TYPE-WORKLOAD_ID,其中: |
注意:
- Serverless for Apache Spark 会将分析器版本设置为批处理 UUID 或会话 UUID。
- 分析器支持以下 Spark 工作负载类型:
Spark
、PySpark
、SparkSql
和SparkR
。 - 工作负载必须运行超过 3 分钟,Profiler 才能收集数据并将其上传到项目中。
- 您可以通过构建
SparkConf
,然后在代码中设置extraJavaOptions
,来替换随工作负载提交的分析选项。请注意,在提交工作负载时设置extraJavaOptions
属性不会覆盖随工作负载提交的分析选项。
如需查看与批量提交搭配使用的分析器选项示例,请参阅 PySpark 批量工作负载示例。
启用分析
如需在工作负载上启用分析,请完成以下步骤:
- 启用 Profiler。
- 如果您使用的是自定义虚拟机服务账号,请向该自定义虚拟机服务账号授予 Cloud Profiler Agent 角色。此角色包含必需的分析器权限。
- 您可以在提交批处理工作负载或创建会话模板时设置分析属性。
PySpark 批处理工作负载示例
以下示例使用 gcloud CLI 提交启用了分析功能的 PySpark 批处理工作负载。
gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \ --region=REGION \ --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \ -- other args
系统会创建两个配置文件:
PROFILE_NAME-driver
,用于分析 Spark 驱动程序任务PROFILE_NAME-executor
,用于分析 Spark 执行程序任务
查看配置文件
您可以在 Google Cloud 控制台中通过 Profiler 查看分析文件。