本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 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 代理配置文件结构的更多信息,请参阅《亚马逊 CloudWatch 用户指南》中的手动创建或编辑 CloudWatch 代理配置文件。 -
接下来,导航到aws-emr-utilities存储库 GitHub 并下载以下系统指标脚本:
-
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 A CloudWatch gent 。
-
在引导操作部分中,选择添加。
-
对于名称,请插入
install_system_metrics_launcher.sh。 -
对于脚本位置,请插入
s3://。将amzn-s3-demo-bucket/install_system_metrics_launcher.sh替换为 S3 存储桶的路径。amzn-s3-demo-bucket -
将参数块留为空白。
-
-
选择 Add bootstrap action(添加引导操作)。
-
继续创建集群以满足您的工作负载需求。
当您的集群启动时, CloudWatch 代理会将您在配置文件中指定的系统指标发布到 CloudWatch。
使用 Amazon EMR 7.0.0 配置应用程序指标
除了系统指标外,您还可以将 Amazon CloudWatch 代理配置为发布 HDFS 和 YARN 的应用程序指标。按照以下步骤将代理配置为发布应用程序指标:
-
在您的 Amazon S3 账户中创建或选择一个存储桶,用于存储指定 CloudWatch 代理指标的配置文件。
-
接下来,导航到 aws-emr-utilities repo GitHub 并下载以下脚本:
-
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://。将amzn-s3-demo-bucket/install_app_metrics_launcher.sh替换为 S3 存储桶的路径。amzn-s3-demo-bucket -
将参数块留为空白。
-
-
选择 Add bootstrap action(添加引导操作)。
-
继续创建集群以满足您的工作负载需求。
当您的集群启动时, CloudWatch 代理会将您指定的应用程序指标以及系统指标发布到 CloudWatch。
使用 Amazon EMR 7.0.0 将 Amazon Managed Service for Prometheus 配置为指标的云存储
您可以将亚马逊 CloudWatch 代理配置为将指标发布到适用于 Prometheus 的亚马逊托管服务,而不是。 CloudWatch
注意
您可以将指标从亚马逊 CloudWatch 代理发布到适用于 Prometheus 的亚马逊托管服务或亚马逊 CloudWatch,但不能将指标发布到同一个集群的两个服务。
要将代理配置为向亚马逊普罗米修斯托管服务发布指标,您必须向亚马逊 EMR 的 Amazon EC2 实例配置文件添加 aps:RemoteWrite AWS Identity and Access Management (IAM) 权限。以下示例策略包含所需的权限:
使用 EMR 集群上的 CloudWatch 代理向适用于 Prometheus 的亚马逊托管服务发布指标
服务策略获得正确权限后,使用以下步骤启动集群,该集群使用 CloudWatch 代理向适用于 Prometheus 的亚马逊托管服务发布指标。
-
使用 AWS 管理控制台 或 AWS CLI 创建 “适用于 Prometheus 的亚马逊托管服务” 工作区。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的创建 Workspace。
-
在您的 Amazon S3 账户中创建或选择一个存储桶,该存储桶用于存储将 Amazon Managed Service for Prometheus 指定为云存储的启动文件。
-
接下来,导航到 aws-emr-utilities repo GitHub 并下载以下脚本:
-
add_prometheus_endpoint_launcher.sh:下载然后在后台运行 add_prometheus_endpoint.sh的脚本,以便节点可以完成引导。 -
add_prometheus_endpoint.sh— 该脚本等待其运行的实例完成引导,然后将 CloudWatch 代理配置为发布到您在启动集群时作为参数提供的 Amazon Prometheus 托管服务终端节点。
-
-
打开每个文件并将
替换为步骤 2 中的存储桶的名称。amzn-s3-demo-bucket -
使用通过 AWS CLI
add_prometheus_endpoint_launcher.sh引导操作创建 EMR 集群。在以下命令中,将替换为包含引导操作的存储桶,并将amzn-s3-demo-bucket替换为 Amazon Managed Service for Prometheus Workspace 的远程写入端点。请务必指定managedpro-remote-write-workspace-urlemr-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 代理会将其收集的指标发布到亚马逊 Prometheus 托管服务。
将 Amazon Managed Service for Prometheus 用作 Amazon Managed Grafana 的数据来源
Amazon EMR 将集群指标发布到 Amazon Managed Service for Prometheus 后,您可以按照以下步骤使用 Amazon Managed Grafana 对指标进行可视化:
-
使用创建亚马逊托管的 Grafana 工作空间和具有适当权限的用户。 AWS 管理控制台 有关更多信息,请参阅《Amazon Managed Grafana 用户指南》中的创建 Workspace。
-
将 Amazon Managed Service for Prometheus Workspace 添加作为 Amazon Managed Grafana 的数据来源。有关更多信息,请参阅《Amazon Managed Grafana 用户指南》中的使用 AWS 数据来源配置添加 Amazon Managed Service for Prometheus 作为数据来源。
注意
该 CloudWatch 代理有一个 Prometheus 导出器,可以重命名某些属性。对于默认指标标签,亚马逊 Prometheus 托管服务使用下划线字符代替亚马逊使用的句点。 CloudWatch 因此,如果您使用 Amazon Managed Grafana 来可视化 Amazon Managed Service for Prometheus 中的默认指标,则标签将显示为 jobflow_id、instance_id 和 service_name。
此外, CloudWatch 代理发布到亚马逊 Prometheus 托管服务的任何应用程序指标都使用该标签job,而不是。service_name但是,系统指标继续使用 service_name 标签。