設定 Amazon EMR 7.0.0 的 CloudWatch 代理程式 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon EMR 7.0.0 的 CloudWatch 代理程式

您可以將 Amazon CloudWatch 代理程式設定為使用預設 CloudWatch 代理程式組態以外的其他系統指標。7.0.0 的組態需要使用引導動作,我們已在以下各節中提供相關範例。在即將發行的版本中,Amazon EMR 將透過 Amazon EMR API 提供其他組態選項。

透過 Amazon EMR 7.0.0 設定其他系統指標

使用以下步驟設定代理程式,以在 Amazon EMR 7.0.0 中使用不同組的系統指標:

  1. 在 Amazon S3 帳戶中建立或選擇儲存貯體,以存放指定 CloudWatch 代理程式指標的組態檔案。

  2. 使用指定的偏好指標來建立 emr-amazon-cloudwatch-agent.json 組態檔案。若要這麼做,請使用建立 CloudWatch 代理程式組態檔中所述的其中一個方法。如需 CloudWatch 代理程式組態檔案結構的詳細資訊,請參閱 Amazon CloudWatch 使用者指南的手動建立或編輯 CloudWatch 代理程式組態檔案

  3. 接下來,導航到aws-emr-utilities回購 GitHub 並下載以下系統指標腳本:

  4. 開啟各個 SH 檔案,並使用步驟 1 中儲存貯體的名稱取代 my-s3-bucket

  5. 將一個 JSON 檔案和兩個 SH 檔案上傳至 S3 儲存貯體。

  6. 現在,您可以導覽至 Amazon EMR 主控台,並使用 CloudWatch 代理程式建立新叢集。在左側導覽窗格中的 EMR on EC2 下,選取叢集,然後選取建立叢集

  7. 名稱和應用程式區段下,選擇 7.0.0 或更高版本的 Amazon EMR 版本。

  8. 在「應用程式服務包」下,選取要安裝到叢集的一個或多個套裝軟體,然後在您的選擇中包含 Amazon CloudWatch Agent

  9. 引導動作區段中,選取新增

    • 名稱中插入 install_system_metrics_launcher.sh

    • 指令碼位置中插入 s3://my-s3-bucket/install_system_metrics_launcher.sh。使用 S3 儲存貯體的路徑取代 my-s3-bucket

    • 引數區塊留空。

  10. 選取新增引導操作

  11. 繼續建立叢集以滿足您的工作負載需求。

當您的叢集啟動時, CloudWatch 代理程式會將您在組態檔中指定的系統度量發佈到 CloudWatch。

透過 Amazon EMR 7.0.0 設定應用程式指標

除了系統指標之外,您還可以設定 Amazon CloudWatch 代理程式以發佈 HDFS 和 YARN 的應用程式指標。使用以下步驟設定代理程式,以發布應用程式指標:

  1. 在 Amazon S3 帳戶中建立或選擇儲存貯體,以存放指定 CloudWatch 代理程式指標的組態檔案。

  2. 接下來,導航到aws-emr-utilities回購 GitHub 並下載以下腳本:

    • install_app_metrics_launcher.sh:下載後在背景中執行 install_app_metrics.sh 的指令碼,讓節點可完成引導。

    • install_app_metrics.sh:此指令碼會等待其運作之執行個體,以完成引導,然後在 YAML 檔案 (您將於後續步驟中下載) 中下載並套用組態。

  3. 開啟各個檔案,並使用步驟 1 中儲存貯體的名稱取代 my-s3-bucket

  4. 接下來,請下載以下 YAML 映射檔案。有關如何構建這些 YAML 文件的信息,請參閱OpenTelemetry Instrumentation for Java GitHub 存儲庫javaagent中的。

  5. 將兩個 SH 檔案和四個 YAML 檔案上傳至 S3 儲存貯體。

  6. 現在,您可以導覽至 Amazon EMR 主控台,並使用 CloudWatch 代理程式建立新叢集。在左側導覽窗格中的 EMR on EC2 下,選取叢集,然後選取建立叢集

  7. 名稱和應用程式區段下,選擇 7.0.0 或更高版本的 Amazon EMR 版本。

  8. 在「應用程式套件包」下,選取您要安裝至叢集的套裝軟體或自訂應用程式群組,然後在您的選擇中包含CloudWatch 代理程式。

  9. 引導動作區段中,選取新增

    • 名稱中插入 install_app_metrics_launcher.sh

    • 指令碼位置中插入 s3://my-s3-bucket/install_app_metrics_launcher.sh。使用 S3 儲存貯體的路徑取代 my-s3-bucket

    • 引數區塊留空。

  10. 選取新增引導操作

  11. 繼續建立叢集以滿足您的工作負載需求。

當您的叢集啟動時, CloudWatch 代理程式會將您指定的應用程式測量結果與系統測量結果發佈到 CloudWatch。

使用 Amazon EMR 7.0.0 將 Amazon Managed Service for Prometheus 設定為指標的雲端儲存空間

您可以設定 Amazon CloudWatch 代理程式,將指標發佈到適用於 Prometheus 的 Amazon 受管服務,而不是。 CloudWatch

注意

您可以將指標從 Amazon CloudWatch 代理程式發佈到適用於 Prometheus 的 Amazon 受管服務或 Amazon CloudWatch,但無法將指標發佈到同一叢集的兩個服務。

若要設定代理程式以將指標發佈到適用於 Prometheus 的 Amazon 受管服務,您必須將 aps:RemoteWrite AWS Identity and Access Management (IAM) 許可新增至 Amazon EMR 的 Amazon EC2 執行個體設定檔。下列政策範例包含必要許可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "aps:RemoteWrite", "Resource": "*" } ] }
使用 EMR 叢集上的 CloudWatch 代理程式將指標發佈到適用於 Prometheus 的 Amazon 受管服務

服務政策具有正確的許可後,請使用以下步驟啟動叢集,該叢集使用 CloudWatch 代理程式將指標發佈到 Prometheus 的 Amazon 受管服務。

  1. 使用 AWS Management Console 或建立適 AWS CLI 用於 Prometheus 工作區的 Amazon 受管服務。如需詳細資訊,請參閱 Amazon Managed Service for Prometheus User Guide 中的 Create a workspace

  2. 在您要存放將 Amazon Managed Service for Prometheus 指定為雲端儲存空間之啟動檔案的 Amazon S3 帳戶中,建立或選擇儲存貯體。

  3. 接下來,導航到aws-emr-utilities回購 GitHub 並下載以下腳本:

    • add_prometheus_endpoint_launcher.sh:下載後在背景中執行 add_prometheus_endpoint.sh 的指令碼,讓節點可完成引導。

    • add_prometheus_endpoint.sh— 一種指令碼,用於等待執行的執行個體完成啟動載入,然後將 CloudWatch 代理程式設定為在啟動叢集時提供的 Prometheus 端點發佈到 Prometheus 端點的 Amazon 受管服務作為引數。

  4. 開啟各個檔案,並使用步驟 2 中儲存貯體的名稱取代 my-s3-bucket

  5. 使用建 AWS CLI 立具有啟動程add_prometheus_endpoint_launcher.sh序動作的 EMR 叢集。在以下命令中,使用包含引導動作的儲存貯體取代 my-s3-bucket,並使用適合 Amazon Managed Service for Prometheus 工作區的遠端寫入端點取代 managedpro-remote-write-workspace-url。請務必指定 emr-7.0.0 或更高版本的 Amazon EMR 發行標籤。

    aws emr create-cluster --name managedpro-cluster \ --release-label emr-7.0.0 \ --applications Name=Hadoop Name=AmazonCloudWatchAgent \ --ec2-attributes KeyName=myKey --instance-type m7g.2xlarge \ --instance-count 3 --use-default-roles --bootstrap-actions Name='Add Prometheus Endpoint',Path=s3://my-s3-bucket/add_prometheus_endpoint_launcher.sh,Args='managedpro-remote-write-workspace-url'

叢集啟動時, CloudWatch 代理程式會將其收集的指標發佈到 Prometheus 的 Amazon 受管服務。

將 Amazon Managed Service for Prometheus 用作 Amazon Managed Grafana 的資料來源

在 Amazon EMR 將叢集指標發布至 Amazon Managed Service for Prometheus 後,您便可使用以下步驟利用 Amazon Managed Grafana 將指標視覺化:

  1. 使用 AWS Management Console 建立具有適當權限的 Amazon 受管 Grafana 工作區和使用者。如需詳細資訊,請參閱 Amazon Managed Grafana User Guide 中的 Create a workspace

  2. 將您的 Amazon Managed Service for Prometheus 工作區作為資料來源新增至 Amazon Managed Grafana。如需詳細資訊,請參閱 Amazon Managed Grafana User Guide 中的 Use AWS data source configuration to add Amazon Managed Service for Prometheus as a data source

注意

CloudWatch 代理程式具有可重新命名某些屬性的 Prometheus 匯出程式。對於預設指標標籤,適用於 Prometheus 的 Amazon 受管服務會使用底線字元來取代 Amazon 使用的期間。 CloudWatch 因此,如果您在 Amazon Managed Service for Prometheus 中使用 Amazon Managed Grafana 來視覺化預設指標,則標籤會顯示為 jobflow_idinstance_idservice_name

此外, CloudWatch 代理程式針對 Prometheus 發佈至 Amazon 受管服務的任何應用程式指標都會使用標籤job代替。service_name然而,系統指標仍會繼續使用 service_name 標籤。