本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 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 中使用不同組的系統指標:
-
在 Amazon S3 帳戶中建立或選擇儲存貯體,以存放指定 CloudWatch 代理程式指標的組態檔案。
-
使用指定的偏好指標來建立
emr-amazon-cloudwatch-agent.json
組態檔案。若要這麼做,請使用建立 CloudWatch 代理程式組態檔中所述的其中一個方法。如需 CloudWatch 代理程式組態檔案結構的詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的手動建立或編輯 CloudWatch 代理程式組態檔案。 -
接下來,導航到aws-emr-utilities回購 GitHub 並下載以下系統指標腳本:
-
install_system_metrics_launcher.sh
:下載後在背景中執行 install_system_metrics.sh
的指令碼,讓節點可完成引導。 -
install_system_metrics.sh
:此指令碼會等待其運作之執行個體,以完成引導,然後在 JSON 檔案中下載並套用組態。
-
-
開啟各個 SH 檔案,並使用步驟 1 中儲存貯體的名稱取代
。my-s3-bucket
-
將一個 JSON 檔案和兩個 SH 檔案上傳至 S3 儲存貯體。
-
現在,您可以導覽至 Amazon EMR 主控台,並使用 CloudWatch 代理程式建立新叢集。在左側導覽窗格中的 EMR on EC2 下,選取叢集,然後選取建立叢集。
-
在名稱和應用程式區段下,選擇 7.0.0 或更高版本的 Amazon EMR 版本。
-
在「應用程式服務包」下,選取要安裝到叢集的一個或多個套裝軟體,然後在您的選擇中包含 Amazon CloudWatch Agent。
-
在引導動作區段中,選取新增。
-
在名稱中插入
install_system_metrics_launcher.sh
。 -
在指令碼位置中插入
s3://
。使用 S3 儲存貯體的路徑取代my-s3-bucket
/install_system_metrics_launcher.sh
。my-s3-bucket
-
將引數區塊留空。
-
-
選取新增引導操作。
-
繼續建立叢集以滿足您的工作負載需求。
當您的叢集啟動時, CloudWatch 代理程式會將您在組態檔中指定的系統度量發佈到 CloudWatch。
透過 Amazon EMR 7.0.0 設定應用程式指標
除了系統指標之外,您還可以設定 Amazon CloudWatch 代理程式以發佈 HDFS 和 YARN 的應用程式指標。使用以下步驟設定代理程式,以發布應用程式指標:
-
在 Amazon S3 帳戶中建立或選擇儲存貯體,以存放指定 CloudWatch 代理程式指標的組態檔案。
-
接下來,導航到aws-emr-utilities回購 GitHub 並下載以下腳本:
-
install_app_metrics_launcher.sh
:下載後在背景中執行 install_app_metrics.sh
的指令碼,讓節點可完成引導。 -
install_app_metrics.sh
:此指令碼會等待其運作之執行個體,以完成引導,然後在 YAML 檔案 (您將於後續步驟中下載) 中下載並套用組態。
-
-
開啟各個檔案,並使用步驟 1 中儲存貯體的名稱取代
。my-s3-bucket
-
接下來,請下載以下 YAML 映射檔案。有關如何構建這些 YAML 文件的信息,請參閱OpenTelemetry Instrumentation for Java GitHub 存儲庫
javaagent
中的。 -
datanode-metrics.yaml
:Hadoop DataNode 指標的組態。 -
namenode-metrics.yaml
:Hadoop NameNode 指標的組態。 -
nodemanager-metrics.yaml
:Yarn NodeManager 指標的組態。 -
resourcemanager-metrics.yaml
:Yarn ResourceManager 指標的組態。
-
-
將兩個 SH 檔案和四個 YAML 檔案上傳至 S3 儲存貯體。
-
現在,您可以導覽至 Amazon EMR 主控台,並使用 CloudWatch 代理程式建立新叢集。在左側導覽窗格中的 EMR on EC2 下,選取叢集,然後選取建立叢集。
-
在名稱和應用程式區段下,選擇 7.0.0 或更高版本的 Amazon EMR 版本。
-
在「應用程式套件包」下,選取您要安裝至叢集的套裝軟體或自訂應用程式群組,然後在您的選擇中包含CloudWatch 代理程式。
-
在引導動作區段中,選取新增。
-
在名稱中插入
install_app_metrics_launcher.sh
。 -
在指令碼位置中插入
s3://
。使用 S3 儲存貯體的路徑取代my-s3-bucket
/install_app_metrics_launcher.sh
。my-s3-bucket
-
將引數區塊留空。
-
-
選取新增引導操作。
-
繼續建立叢集以滿足您的工作負載需求。
當您的叢集啟動時, 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 受管服務。
-
使用 AWS Management Console 或建立適 AWS CLI 用於 Prometheus 工作區的 Amazon 受管服務。如需詳細資訊,請參閱 Amazon Managed Service for Prometheus User Guide 中的 Create a workspace。
-
在您要存放將 Amazon Managed Service for Prometheus 指定為雲端儲存空間之啟動檔案的 Amazon S3 帳戶中,建立或選擇儲存貯體。
-
接下來,導航到aws-emr-utilities回購 GitHub 並下載以下腳本:
-
add_prometheus_endpoint_launcher.sh
:下載後在背景中執行 add_prometheus_endpoint.sh
的指令碼,讓節點可完成引導。 -
add_prometheus_endpoint.sh
— 一種指令碼,用於等待執行的執行個體完成啟動載入,然後將 CloudWatch 代理程式設定為在啟動叢集時提供的 Prometheus 端點發佈到 Prometheus 端點的 Amazon 受管服務作為引數。
-
-
開啟各個檔案,並使用步驟 2 中儲存貯體的名稱取代
。my-s3-bucket
-
使用建 AWS CLI 立具有啟動程
add_prometheus_endpoint_launcher.sh
序動作的 EMR 叢集。在以下命令中,使用包含引導動作的儲存貯體取代
,並使用適合 Amazon Managed Service for Prometheus 工作區的遠端寫入端點取代my-s3-bucket
。請務必指定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 將指標視覺化:
-
使用 AWS Management Console 建立具有適當權限的 Amazon 受管 Grafana 工作區和使用者。如需詳細資訊,請參閱 Amazon Managed Grafana User Guide 中的 Create a workspace。
-
將您的 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_id
、instance_id
和 service_name
。
此外, CloudWatch 代理程式針對 Prometheus 發佈至 Amazon 受管服務的任何應用程式指標都會使用標籤job
代替。service_name
然而,系統指標仍會繼續使用 service_name
標籤。