本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Managed Service for Prometheus 監控 Spark 指標
使用 Amazon EMR 7.1.0 版和更新版本,您可以將 EMR Serverless 與 Amazon Managed Service for Prometheus 整合,以收集 EMR Serverless 任務和應用程式的 Apache Spark 指標。當您提交任務或使用 AWS 主控台、EMR Serverless API 或 建立應用程式時,即可使用此整合 AWS CLI。
先決條件
您必須先完成下列先決條件,才能將 Spark 指標交付至 Amazon Managed Service for Prometheus。
-
建立 Amazon Managed Service for Prometheus 工作區。此工作區用作擷取端點。記下針對端點 - 遠端寫入 URL 顯示的 URL。建立 EMR Serverless 應用程式時,您需要指定 URL。
-
若要將任務的存取權授予 Amazon Managed Service for Prometheus 以進行監控,請將下列政策新增至您的任務執行角色。
{ "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:
<AWS_REGION>
:<AWS_ACCOUNT_ID>
:workspace/<WORKSPACE_ID>
" }
設定
使用 AWS 主控台建立與 Amazon Managed Service for Prometheus 整合的應用程式
-
請參閱 Amazon EMR Serverless 入門以建立應用程式。
-
當您建立應用程式時,請選擇使用自訂設定,然後在您要設定的欄位內指定資訊來設定應用程式。
-
在應用程式日誌和指標下,選擇將引擎指標交付至 Amazon Managed Service for Prometheus,然後指定遠端寫入 URL。
-
指定您想要的任何其他組態設定,然後選擇建立和啟動應用程式。
使用 AWS CLI 或 EMR Serverless API
當您執行 AWS CLI 或 start-job-run
命令時,您也可以使用 create-application
或 EMR Serverless API 將您的 EMR Serverless 應用程式與 Amazon Managed Service for Prometheus 整合。
在您的命令prometheusMonitoringConfiguration
中包含 表示 EMR Serverless 必須使用收集 Spark 指標的代理程式來執行 Spark 任務,並將其寫入 Amazon Managed Service for Prometheus 的remoteWriteUrl
端點。然後,您可以使用 Amazon Managed Service for Prometheus 中的 Spark 指標進行視覺化、提醒和分析。
進階組態屬性
EMR Serverless 在 Spark 中使用名為 的元件PrometheusServlet
來收集 Spark 指標,並將效能資料轉換為與 Amazon Managed Service for Prometheus 相容的資料。根據預設,EMR Serverless 會在 Spark 中設定預設值,並在您使用 提交任務時剖析驅動程式和執行器指標PrometheusMonitoringConfiguration
。
下表說明在提交 Spark 任務將指標傳送至 Amazon Managed Service for Prometheus 時,您可以設定的所有屬性。
Spark 屬性 | 預設值 | 描述 |
---|---|---|
spark.metrics.conf.*.sink.prometheusServlet.class |
org.apache.spark.metrics.sink.PrometheusServlet |
Spark 用來將指標傳送至 Amazon Managed Service for Prometheus 的類別。若要覆寫預設行為,請指定您自己的自訂類別。 |
spark.metrics.conf.*.source.jvm.class |
org.apache.spark.metrics.source.JvmSource |
類別 Spark 使用 從基礎 Java 虛擬機器收集和傳送關鍵指標。若要停止收集 JVM 指標,請將其設定為空字串來停用此屬性,例如 |
spark.metrics.conf.driver.sink.prometheusServlet.path |
/metrics/prometheus |
Amazon Managed Service for Prometheus 用來從驅動程式收集指標的不同 URL。若要覆寫預設行為,請指定您自己的路徑。若要停止收集驅動程式指標,請將其設定為空字串來停用此屬性,例如 |
spark.metrics.conf.executor.sink.prometheusServlet.path |
/metrics/executor/prometheus |
Amazon Managed Service for Prometheus 用來從執行器收集指標的不同 URL。若要覆寫預設行為,請指定您自己的路徑。若要停止收集執行器指標,請將其設定為空字串來停用此屬性,例如 |
如需 Spark 指標的詳細資訊,請參閱 Apache Spark 指標
考量與限制
使用 Amazon Managed Service for Prometheus 從 EMR Serverless 收集指標時,請考慮下列考量和限制。
-
Amazon Managed Service for Prometheus 與 EMR Serverless 搭配使用的支援,僅適用於 AWS 區域 Amazon Managed Service for Prometheus 一般提供的 。
-
在 Amazon Managed Service for Prometheus 上執行代理程式以收集 Spark 指標需要工作者的更多資源。如果您選擇較小的工作者大小,例如一個 vCPU 工作者,您的任務執行時間可能會增加。
-
僅 Amazon EMR 7.1.0 版及更新版本支援將 Amazon Managed Service for Prometheus 與 EMR Serverless 搭配使用。
-
Amazon Managed Service for Prometheus 必須部署在您執行 EMR Serverless 的相同帳戶中,才能收集指標。