对 Dataproc Serverless 工作负载进行监控和问题排查

您可以监控 Dataproc Serverless Spark 批处理工作负载 使用下面几部分中介绍的信息和工具。

Persistent History Server

Dataproc Serverless for Spark 可创建运行工作负载所需的计算资源, 在这些资源上运行工作负载,然后在工作负载完成时删除资源。 工作负载完成后,系统不会保留工作负载指标和事件。不过,您可以使用 用于保留工作负载应用历史记录(事件)的永久性历史记录服务器 (PHS) 日志)。

如需将 PHS 与批量工作负载搭配使用,请执行以下操作:

  1. 创建 Dataproc 永久性历史记录服务器 (PHS)

  2. 提交工作负载时指定 PHS。

  3. 使用组件网关 连接到 PHS 以查看应用详情、调度器阶段、任务级别详情, 环境和执行器信息

Dataproc Serverless for Spark 日志

在 Dataproc Serverless for Spark 中,日志记录默认处于启用状态, 工作负载。Dataproc Serverless for Spark 会在 Cloud Logging 中收集工作负载日志。 您可以在以下位置访问工作负载 sparkagentoutputcontainer 日志: Cloud Dataproc Batch 资源。

Dataproc Serverless for Spark 批处理示例:

Metrics Explorer 中的批量选择示例。

如需更多信息 请参阅 Dataproc 日志

Dataproc 无服务器审核日志

如需了解 Dataproc 无服务器审核日志,请参阅 Dataproc 审核日志记录

工作负载指标

默认情况下,Dataproc Serverless for Spark 支持 可用的 Spark 指标, 除非您使用 Spark 指标集合属性 来停用或替换一个或多个 Spark 指标的集合。

您可在以下位置查看工作负载指标: Metrics Explorer 或 Google Cloud 控制台中的批次详情页面。

批量指标

借助 Dataproc batch 资源指标,您可以深入了解批量资源 例如批处理执行程序的数量批处理指标的前缀为 dataproc.googleapis.com/batch.

Metrics Explorer 中的批量指标示例。

Spark 指标

可用的 Spark 指标 包括 Spark 驱动程序和执行器指标以及系统指标。可用的 Spark 指标带有前缀 尽在 custom.googleapis.com/

Metrics Explorer 中的 Spark 指标示例。

设置指标提醒

您可以创建 Dataproc 指标提醒 以接收有关工作负载问题的通知。

创建图表

您可以使用 Metrics Explorer Google Cloud 控制台。例如,您可以 创建一个图表以显示disk:bytes_used,然后按 batch_id 进行过滤。

Cloud Monitoring

Monitoring 使用工作负载元数据和指标来提供数据洞见 了解 Dataproc Serverless for Spark 工作负载的健康状况和性能。 工作负载指标包括 Spark 指标、批处理指标和操作指标。

您可以在 Google Cloud 控制台中使用 Cloud Monitoring 以浏览指标、添加图表、创建信息中心和创建提醒。

创建信息中心

您可以创建信息中心,以便使用多个来源的指标来监控工作负载 和不同的 Google Cloud 产品如需了解详情,请参阅 创建和管理自定义信息中心

高级问题排查(预览版)

本部分将介绍高级问题排查方法 功能(预览版) 可在 Google Cloud 控制台中找到。这些功能包括 Gemini 辅助的 Dataproc Serverless 问题排查, 它是 BigQuery 中的 Gemini 产品。

使用预览版功能

注册获取预览版 高级问题排查功能,请填写并提交 BigQuery 中的 Gemini 正式发布前注册 表单。表单获得批准后,表单中列出的项目将有权访问 预览版功能。

预览价格

参与预览版无需支付额外费用。 当下列预览版功能变为有效状态后, 正式版 (GA)

Google Analytics 费用提前通知将发送到您在 预览注册表单

功能要求

  • 注册:你必须注册才能使用该功能。

  • 权限:您必须拥有 dataproc.batches.analyze 权限。

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • 为 Dataproc Serverless 启用 Gemini 辅助的问题排查:您可以启用 Gemini 辅助 使用 Google Cloud 控制台、gcloud CLI 或 Dataproc API.在周期性批量工作负载上启用此功能后,Dataproc 将工作负载日志的副本存储 30 天,并使用 保存的日志数据,以便在 Gemini 协助下排查工作负载问题。 如需了解 Spark 工作负载日志内容,请参阅 Dataproc Serverless for Spark 日志

控制台

请执行以下步骤,针对每一项启用 Gemini 辅助的问题排查 周期性 Spark 批量工作负载:

  1. 在 Google Cloud 控制台中,前往 Dataproc 批次页面。

    转到 Dataproc 批次

  2. 如需创建批量工作负载,请点击创建

  3. 容器部分中,填写 同类群组名称,用于将批次标识为一系列周期性工作负载中的一个。 Gemini 辅助分析会应用于第二个及后续工作负载 与此同类群组名称一起提交的查询例如,指定 将 TPCH-Query1 作为运行 每日 TPC-H 查询。

  4. 根据需要填写创建批次页面的其他部分,然后点击 提交。如需了解详情,请参阅 提交批量工作负载

gcloud

运行以下 gcloud CLI gcloud dataproc batches submit 命令行或 Cloud Shell 中本地运行 为每个周期性 Spark 批处理工作负载启用 Gemini 辅助的问题排查:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    other arguments ...

替换以下内容:

  • COMMAND:Spark 工作负载类型,例如 SparkPySpark Spark-SqlSpark-R
  • REGIONregion [地区] 运行工作负载的位置
  • COHORT:同类群组的名称。 将批次标识为一系列周期性工作负载中的一个。 Gemini 辅助分析会应用于提交的第二项及后续工作负载 此同类群组名称。例如,指定 TPCH Query 1 作为每日运行的计划工作负载的同类群组名称 TPC-H 查询。

API

包含 RuntimeConfig.cohort batches.create 中的 请求为每个周期性 Spark 启用 Gemini 辅助的问题排查 批量工作负载Gemini 辅助分析适用于提交的第二个及后续工作负载 此同类群组名称。例如,指定 TPCH-Query1 作为同类群组名称 用于每日运行 TPC-H 查询。

示例:

...
runtimeConfig:
  cohort: TPCH-Query1
...

Gemini 辅助的 Dataproc Serverless 问题排查

您可在 Google Cloud 控制台中的批次详情批次列表页面。

  • 调查标签页:批次详情页面上的“调查”标签页 提供了一个“运行状况概览(预览版)”部分,其中 Gemini 辅助的问题排查面板:

    • 对哪些内容进行了自动调优?如果您 已启用自动调节功能 此面板会显示系统对一个或多个工作负载进行的最新自动调节 应用于正在运行的、已完成和失败的工作负载。

    自动调节调查面板。

    • 目前发生了什么?以及我可以做些什么? 点击向 Gemini 提问以请求获得相关建议,以帮助修复失败的工作负载 或改进已成功但运行缓慢的工作负载

    “向 Gemini 提问”按钮。

    如果您点击向 Gemini 提问,Google Cloud 专用 Gemini 会生成关于任何错误的摘要, 异常值,或工作负载日志、Spark 指标和 Spark 事件中的重要信息。 Google Cloud 专用 Gemini 还会显示一个建议步骤列表,您可以执行这些步骤来修复失败问题 或提升运行成功但运行缓慢的工作负载的性能。

    适用于 Google Cloud 的 Gemini 生成的分析洞见。

  • Gemini 辅助的问题排查列:在 预览版中的 Dataproc 批次列表页面, Google Cloud 控制台包含 What was AutotunedWhat is happening now?、 和 What can I do about it? 列。

    批次会列出 Gemini 列。

    系统会显示向 Gemini 提问按钮,并且 仅当已完成的批次处于 FailedCancelledSucceeded 状态时才启用。 如果您点击向 Gemini 提问,就可以选择在 Google Cloud 上使用 Gemini。 生成有关工作负载日志、Spark 指标和 Spark 事件中的任何错误、异常或重要信息的摘要。 Google Cloud 专用 Gemini 还会显示一个建议步骤列表,您可以执行这些步骤来修复失败问题 或提升运行成功但运行缓慢的工作负载的性能。

批量指标亮点

在预览版中,Google Cloud 控制台中的批处理详情页面 包含显示重要的批量工作负载指标值的图表。指标 批次完成后,图表将填入值。

批量指标信息中心。

指标表格

下表列出了 Google Cloud 控制台中的批次详情页面,介绍了指标在 值可帮助您深入了解工作负载状态和性能。

指标 会显示什么内容?
执行器级别的指标
JVM GC 时间与运行时的比率 此指标显示每个执行器的 JVM GC(垃圾回收)时间与运行时的比率。比率高可能表明在特定执行器上运行的任务中存在内存泄漏或低效的数据结构,从而导致对象流失率高。
溢出的磁盘字节数 此指标显示溢出到不同执行程序的磁盘字节总数。如果执行程序显示溢出的磁盘字节数过高,这可能表示数据倾斜。如果该指标随时间而增加,则可能表示存在内存压力或内存泄漏的阶段。
读取和写入的字节数 此指标显示每个执行器写入的字节数与读取的字节数。如果读取或写入的字节数存在较大差异,则可能表示复制联接导致特定执行程序上数据放大的情况。
读取和写入记录 此指标显示每个执行器的读取和写入记录。如果读取大量记录,但写入的记录数较少,则可能表示特定执行器的处理逻辑存在瓶颈,导致在等待期间读取记录。如果执行器的读写操作始终滞后,则可能表明这些节点上有资源争用或特定于执行器的代码效率低下。
Shuffle 写入时间与运行时间的比率 该指标显示的是与总运行时相比,执行器在 Shuffle 运行时中花费的时间。如果对于某些执行程序,此值很高,这可能表明存在数据倾斜或数据序列化效率低下。 您可以在 Spark 界面中找出 Shuffle 写入时间较长的阶段。查找这些阶段中完成时间超过平均时间的离群任务。检查 Shuffle 写入时间较长的执行器是否也显示高磁盘 I/O 活动。执行更高效的序列化和额外的分区步骤可能会有所帮助。与记录读取相比,非常大的记录写入量可能表示由于联接效率低下或转换不正确而导致意外的数据重复。
应用级别的指标
阶段进程 此指标显示失败、等待和正在运行阶段的阶段数量。大量失败或等待的阶段可能表明数据存在偏差。使用 Spark 界面中的阶段标签页检查数据分区,并调试阶段失败的原因。
批处理 Spark 执行器 此指标显示可能所需的执行器数量 正在运行的执行器的数量。必需的执行程序和正在运行的执行程序之间存在很大的差异 可能表示自动扩缩问题。
虚拟机级指标
使用的内存 此指标显示正在使用的虚拟机内存所占的百分比。如果主服务器百分比较高,则可能表示驱动程序面临内存压力。对于其他虚拟机节点,较高百分比可能表示执行程序正在耗尽内存,而这可能会导致磁盘泄漏和工作负载运行时速度变慢。使用 Spark 界面分析执行程序,以检查是否存在较长的 GC 时间和严重的任务失败。此外,还可调试 Spark 代码以进行大型数据集缓存和不必要的变量广播。

作业日志

在预览版中,Google Cloud 控制台中的批处理详情页面 列出作业(批量工作负载)日志。日志包含过滤出的警告和错误 来自工作负载输出和 Spark 日志的数据。您可以选择“日志” 严重级别,添加过滤条件,然后点击在日志浏览器中查看图标 打开所选的批处理日志 日志浏览器

示例:从“严重级别”中选择 Errors 后,Logs Explorer 即会打开 选择器(位于 Google Cloud 控制台的批次详情页面上)。

Batch Logs Explorer。

Spark 界面(预览版)

如果您在 Spark 界面预览中注册了项目 功能,您可以在 Google Cloud 控制台中查看 Spark 界面,而无需 来创建一个 Dataproc PHS(永久性历史记录服务器)集群。 Spark 界面从批处理工作负载收集 Spark 执行详细信息。 有关详情,请参阅发放给已注册客户的用户指南 作为 Spark 界面预览版的一部分。