Cloud Profiler

Cloud Profiler 会持续收集和报告应用的 CPU 使用率和内存分配信息。

要求

  • Profiler 仅支持 Managed Service for Apache Spark Hadoop 和 Spark 作业类型(Spark、PySpark、SparkSql 和 SparkR)。

  • 作业必须运行超过 3 分钟,Profiler 才能收集数据并将其上传到您的项目中。

Managed Service for Apache Spark 会识别 cloud.profiler.enable 和其他 cloud.profiler.* 属性(请参阅 Profiler 选项),然后将 相关的性能剖析器 JVM 选项附加到以下配置:

  • Spark:spark.driver.extraJavaOptionsspark.executor.extraJavaOptions
  • MapReduce:mapreduce.task.profile 和其他 mapreduce.task.profile.* 属性

启用分析

完成以下步骤以在 Managed Service for Apache Spark 和 Hadoop 作业上启用和使用 Profiler。

  1. 启用 Profiler

  2. 创建 Managed Service for Apache Spark 集群 并将服务账号范围 设置为 monitoring 以允许集群与 Profiler 服务通信。

  3. 如果您使用的是 自定义虚拟机服务账号, 请向该自定义虚拟机服务帐号授予 Cloud Profiler Agent 角色。此角色包含所需的性能分析器服务权限。

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

使用 Profiler 选项提交 Managed Service for Apache Spark 作业

  1. 提交 Spark 或 Hadoop 作业 使用以下一个或多个 Profiler 选项:
    选项 说明 必需/可选 默认值 备注
    cloud.profiler.enable 启用对作业的分析 truefalse 必需 false
    cloud.profiler.name 用于在 Profiler 服务上创建配置文件的名称 profile-name 可选 Managed Service for Apache Spark 作业 UUID
    cloud.profiler.service.version 用户提供的字符串,用于识别和区分 Profiler 结果。 Profiler Service Version 可选 Managed Service for Apache Spark 作业 UUID
    mapreduce.task.profile.maps 要分析的映射任务的数量范围(例如,如果最多 100 个,请指定“0-100”) number range 可选 0-10000 仅适用于 Hadoop mapreduce 作业
    mapreduce.task.profile.reduces 要分析的缩减器任务的数量范围(例如,如果最多 100 个,请指定“0-100”) number range 可选 0-10000 仅适用于 Hadoop mapreduce 作业

PySpark 示例

Google Cloud CLI

启用了分析的 PySpark 作业提交示例:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  job args

将创建两个配置文件:

  1. profiler_name-driver,用于分析 Spark 驱动程序任务
  2. profiler_name-executor,用于分析 Spark 执行程序任务

例如,如果 profiler_name 是“spark_word_count_job”,则会创建 spark_word_count_job-driverspark_word_count_job-executor 配置文件。

Hadoop 示例

gcloud CLI

启用了分析的 Hadoop (teragen mapreduce) 作业提交示例:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jar=jar-file \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  teragen 100000 gs://bucket-name

查看配置文件

通过 Google Cloud 控制台上的 Profiler 查看分析文件。

后续步骤