本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 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 中使用不同組的系統指標:
-
在您要存放指定 CloudWatch 代理程式指標之組態檔案的 Amazon S3 帳戶中,建立或選擇儲存貯體。
-
使用指定的偏好指標來建立
emr-amazon-cloudwatch-agent.json
組態檔案。為此,請使用建立 CloudWatch 代理程式組態檔案中所述的其中一個方法。如需有關 CloudWatch 代理程式組態檔案之結構的詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的手動建立或編輯 CloudWatch 代理程式組態檔案。 -
接下來,請導覽至 GitHub 上的 aws-emr-utilities 儲存庫,然後下載以下系統指標指令碼:
-
install_system_metrics_launcher.sh
:下載後在背景中執行 install_system_metrics.sh
的指令碼,讓節點可完成引導。 -
install_system_metrics.sh
:此指令碼會等待其運作之執行個體,以完成引導,然後在 JSON 檔案中下載並套用組態。
-
-
開啟各個 SH 檔案,並使用步驟 1 中儲存貯體的名稱取代
。amzn-s3-demo-bucket
-
將一個 JSON 檔案和兩個 SH 檔案上傳至 S3 儲存貯體。
-
現在,您可導覽至 Amazon EMR 主控台,並使用 CloudWatch 代理程式建立新的叢集。在左側導覽窗格中的 EMR on EC2 下,選取叢集,然後選取建立叢集。
-
在名稱和應用程式區段下,選擇 7.0.0 或更高版本的 Amazon EMR 版本。
-
在應用程式套件下,選取您要安裝至叢集的套件或應用程式,然後在您的選擇中納入 Amazon CloudWatch 代理程式。
-
在引導動作區段中,選取新增。
-
在名稱中插入
install_system_metrics_launcher.sh
。 -
在指令碼位置中插入
s3://
。使用 S3 儲存貯體的路徑取代amzn-s3-demo-bucket
/install_system_metrics_launcher.sh
。amzn-s3-demo-bucket
-
將引數區塊留空。
-
-
選取新增引導操作。
-
繼續建立叢集以滿足您的工作負載需求。
在叢集啟動時,CloudWatch 代理程式會將您在組態檔案中指定的系統指標發布至 CloudWatch。
透過 Amazon EMR 7.0.0 設定應用程式指標
除了系統指標之外,您也可設定 Amazon CloudWatch 代理程式,以發布 HDFS 和 YARN 的應用程式指標。使用以下步驟設定代理程式,以發布應用程式指標:
-
在您要存放指定 CloudWatch 代理程式指標之組態檔案的 Amazon S3 帳戶中,建立或選擇儲存貯體。
-
接下來,請導覽至 GitHub 上的 aws-emr-utilities 儲存庫,然後下載以下指令碼:
-
install_app_metrics_launcher.sh
:下載後在背景中執行 install_app_metrics.sh
的指令碼,讓節點可完成引導。 -
install_app_metrics.sh
:此指令碼會等待其運作之執行個體,以完成引導,然後在 YAML 檔案 (您將於後續步驟中下載) 中下載並套用組態。
-
-
開啟各個檔案,並使用步驟 1 中儲存貯體的名稱取代
。amzn-s3-demo-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 儲存貯體的路徑取代amzn-s3-demo-bucket
/install_app_metrics_launcher.sh
。amzn-s3-demo-bucket
-
將引數區塊留空。
-
-
選取新增引導操作。
-
繼續建立叢集以滿足您的工作負載需求。
在叢集啟動時,CloudWatch 代理程式會將您隨系統指標指定的應用程式指標發布至 CloudWatch。
使用 Amazon EMR 7.0.0 將 Amazon Managed Service for Prometheus 設定為指標的雲端儲存空間
您可設定 Amazon CloudWatch 代理程式,以將指標發布至 Amazon Managed Service for Prometheus (而非 CloudWatch)。
注意
您可將指標從 Amazon CloudWatch 代理程式發布至 Amazon Managed Service for Prometheus 或 Amazon CloudWatch,但無法將指標發布至同一個叢集的兩個服務。
若要設定代理程式將指標發佈至 Amazon Managed Service for Prometheus,您必須將 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 代理程式,以將指標發布至 Amazon Managed Service for Prometheus
在服務政策具有正確許可後,請使用以下步驟啟動叢集,該叢集會使用 CloudWatch 代理程式將指標發布至 Amazon Managed Service for Prometheus。
-
使用 AWS Management Console 或 AWS CLI 建立 Amazon Managed Service for Prometheus 工作區。如需詳細資訊,請參閱 Amazon Managed Service for Prometheus User Guide 中的 Create a workspace。
-
在您要存放將 Amazon Managed Service for Prometheus 指定為雲端儲存空間之啟動檔案的 Amazon S3 帳戶中,建立或選擇儲存貯體。
-
接下來,請導覽至 GitHub 上的 aws-emr-utilities 儲存庫,然後下載以下指令碼:
-
add_prometheus_endpoint_launcher.sh
:下載後在背景中執行 add_prometheus_endpoint.sh
的指令碼,讓節點可完成引導。 -
add_prometheus_endpoint.sh
:此指令碼會等待其運作之執行個體,以完成引導,然後設定 CloudWatch 代理程式以發布至 Amazon Managed Service for Prometheus 端點,其為您在啟動叢集時提供作為引數的端點。
-
-
開啟各個檔案,並使用步驟 2 中儲存貯體的名稱取代
。amzn-s3-demo-bucket
-
使用 AWS CLI 建立具有
add_prometheus_endpoint_launcher.sh
引導動作的 EMR 叢集。在以下命令中,使用包含引導動作的儲存貯體取代
,並使用適合 Amazon Managed Service for Prometheus 工作區的遠端寫入端點取代amzn-s3-demo-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://amzn-s3-demo-bucket
/add_prometheus_endpoint_launcher.sh,Args='managedpro-remote-write-workspace-url
'
在叢集啟動時,CloudWatch 代理程式會將其收集的指標發布至 Amazon Managed Service for Prometheus。
將 Amazon Managed Service for Prometheus 用作 Amazon Managed Grafana 的資料來源
在 Amazon EMR 將叢集指標發布至 Amazon Managed Service for Prometheus 後,您便可使用以下步驟利用 Amazon Managed Grafana 將指標視覺化:
-
使用 AWS Management Console 建立具有適當許可的 Amazon Managed 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 匯出工具。針對預設指標標籤,Amazon Managed Service for Prometheus 會使用底線字元來取代 Amazon CloudWatch 使用的期間。因此,如果您在 Amazon Managed Service for Prometheus 中使用 Amazon Managed Grafana 來視覺化預設指標,則標籤會顯示為 jobflow_id
、instance_id
和 service_name
。
此外,CloudWatch 代理程式發布至 Amazon Managed Service for Prometheus 的任何應用程式指標,皆會使用 job
標籤而非 service_name
。然而,系統指標仍會繼續使用 service_name
標籤。