Cloud Profiler 会持续收集和报告应用的 CPU 使用率和内存分配信息。
要求:
Profiler 仅支持 Dataproc Hadoop 和 Spark 作业类型(Spark、PySpark、SparkSql 和 SparkR)。
作业必须运行超过 3 分钟,Profiler 才能收集数据并将其上传到您的项目中。
Dataproc 会识别 cloud.profiler.enable
和其他 cloud.profiler.*
属性(请参阅 Profiler 选项),然后将相关的性能剖析器 JVM 选项附加到以下配置:
- Spark:
spark.driver.extraJavaOptions
和spark.executor.extraJavaOptions
- MapReduce:
mapreduce.task.profile
和其他mapreduce.task.profile.*
属性
启用分析
完成以下步骤以在 Dataproc Spark 和 Hadoop 作业上启用和使用 Profiler。
创建 Dataproc 集群,并将服务账号范围设置为
monitoring
以允许集群与 Profiler 服务通信。如果您使用的是自定义虚拟机服务账号,请向自定义虚拟机服务账号授予 Cloud Profiler Agent 角色。这个 角色包含所需的性能分析器服务权限。
gcloud
gcloud dataproc clusters create cluster-name \ --scopes=cloud-platform \ --region=region \ other args ...
使用 Profiler 选项提交 Dataproc 作业
- 使用以下一个或多个 Profiler 选项提交 Dataproc Spark 或 Hadoop 作业:
选项 说明 值 必需/可选 默认 备注 cloud.profiler.enable
启用对作业的分析 true
或false
必需 false
cloud.profiler.name
用于在 Profiler 服务上创建配置文件的名称 profile-name 可选 Dataproc 作业 UUID cloud.profiler.service.version
用户提供的字符串,用于识别和区分 Profiler 结果。 Profiler Service Version 可选 Dataproc 作业 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
将创建两个配置文件:
profiler_name-driver
,用于分析 Spark 驱动程序任务profiler_name-executor
,用于分析 Spark 执行程序任务
例如,如果 profiler_name
是“spark_word_count_job”,则会创建 spark_word_count_job-driver
和 spark_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
查看配置文件
通过以下工具查看 Profiler 中的配置文件: Google Cloud 控制台
后续步骤
- 请参阅 Monitoring 文档
- 请参阅 Logging 文档
- 探索 Google Cloud 可观测性