为亚马逊 EMR 7.0.0 配置 CloudWatch 代理 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为亚马逊 EMR 7.0.0 配置 CloudWatch 代理

您可以将 Amazon CloudWatch 代理配置为使用默认 CloudWatch 代理配置提供的系统指标之外的其他系统指标。7.0.0 的配置需要使用引导操作,我们在以下各部分中提供了这些操作的示例。在即将发布的版本中,亚马逊EMR将通过亚马逊提供其他配置选项EMRAPI。

使用 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 文件并将 amzn-s3-demo-bucket 替换为步骤 1 中的存储桶的名称。

  5. 将一个JSON和两个 SH 文件上传到您的 S3 存储桶。

  6. 现在,您可以导航到 Amazon EMR 控制台并使用 CloudWatch 代理创建新集群。EC2在左侧导航栏的 “开” 下EMR,选择 “集群”,然后选择 “创建集群”。

  7. 在 “名称和应用程序” 部分,选择 7.0.0 或更高EMR版本的 Amazon 版本。

  8. 应用程序捆绑包下,选择要安装到集群中的一个或多个应用程序,并在您的选择中包含 Amazon A CloudWatch gent

  9. 引导操作部分中,选择添加

    • 对于名称,请插入 install_system_metrics_launcher.sh

    • 对于脚本位置,请插入 s3://amzn-s3-demo-bucket/install_system_metrics_launcher.sh。将 amzn-s3-demo-bucket 替换为 S3 存储桶的路径。

    • 参数块留为空白。

  10. 选择 Add bootstrap action(添加引导操作)。

  11. 继续创建集群以满足您的工作负载需求。

当您的集群启动时, CloudWatch 代理会将您在配置文件中指定的系统指标发布到 CloudWatch。

使用 Amazon EMR 7.0.0 配置应用程序指标

您可以将 Amazon CloudWatch 代理配置为HDFSYARN除了系统指标之外还发布应用程序指标。按照以下步骤将代理配置为发布应用程序指标:

  1. 在您的 Amazon S3 账户中创建或选择一个存储桶,用于存储指定 CloudWatch 代理指标的配置文件。

  2. 接下来,导航到 aws-emr-utilities 重新购买 GitHub 并下载以下脚本:

    • install_app_metrics_launcher.sh – 下载然后在后台运行 install_app_metrics.sh 的脚本,以便节点可以完成引导。

    • install_app_metrics.sh— 一种脚本,它等待其运行的实例完成引导,然后下载并应用文件中的配置,这些YAML文件将在接下来的步骤中下载。

  3. 打开每个文件并将 amzn-s3-demo-bucket 替换为步骤 1 中的存储桶的名称。

  4. 接下来,下载以下YAML映射文件。有关这些YAML文件结构的信息,请参阅javaagent中的 OpenTelemetry Instrumentation for Java GitHub 回购。

  5. 将两个 SH 和四个YAML文件上传到您的 S3 存储桶。

  6. 现在,您可以导航到 Amazon EMR 控制台并使用 CloudWatch 代理创建新集群。EC2在左侧导航栏的 “开” 下EMR,选择 “集群”,然后选择 “创建集群”。

  7. 在 “名称和应用程序” 部分,选择 7.0.0 或更高EMR版本的 Amazon 版本。

  8. 在 “应用程序捆绑包” 下,选择要安装到集群的捆绑包或自定义应用程序组,并在您的选择中加入CloudWatch 代理

  9. 引导操作部分中,选择添加

    • 对于名称,请插入 install_app_metrics_launcher.sh

    • 对于脚本位置,请插入 s3://amzn-s3-demo-bucket/install_app_metrics_launcher.sh。将 amzn-s3-demo-bucket 替换为 S3 存储桶的路径。

    • 参数块留为空白。

  10. 选择 Add bootstrap action(添加引导操作)。

  11. 继续创建集群以满足您的工作负载需求。

当您的集群启动时, CloudWatch 代理会将您指定的应用程序指标以及系统指标发布到 CloudWatch。

使用亚马逊 7.0.0 将适用于 Prometheus 的亚马逊托管服务配置为指标的云存储 EMR

您可以将亚马逊 CloudWatch 代理配置为将指标发布到适用于 Prometheus 的亚马逊托管服务,而不是。 CloudWatch

注意

您可以将指标从亚马逊 CloudWatch 代理发布到适用于 Prometheus 的亚马逊托管服务,也可以发布到 CloudWatch亚马逊,但不能将指标发布到同一集群的两个服务。

要将代理配置为将指标发布到适用于 Prometheus 的亚马逊托管服务,您必须在亚马逊EC2实例配置aps:RemoteWrite AWS Identity and Access Management 文件中添加 IAM () 权限。EMR以下示例策略包含所需的权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "aps:RemoteWrite", "Resource": "*" } ] }
使用EMR集群上的 CloudWatch 代理向适用于 Prometheus 的亚马逊托管服务发布指标

服务策略获得正确权限后,使用以下步骤启动一个集群,该集群使用 CloudWatch 代理将指标发布到适用于 Prometheus 的亚马逊托管服务。

  1. 使用 AWS Management Console 或 AWS CLI 创建适用于 Prometheus 的亚马逊托管服务工作区。有关更多信息,请参阅《Amazon Managed Service for Prometheus 用户指南》中的创建工作区

  2. 在您的 Amazon S3 账户中创建或选择一个存储桶,该存储桶用于存储将 Amazon Managed Service for Prometheus 指定为云存储的启动文件。

  3. 接下来,导航到 aws-emr-utilities 重新购买 GitHub 并下载以下脚本:

    • add_prometheus_endpoint_launcher.sh – 下载然后在后台运行 add_prometheus_endpoint.sh 的脚本,以便节点可以完成引导。

    • add_prometheus_endpoint.sh— 一种脚本,它等待其运行的实例完成引导,然后将 CloudWatch 代理配置为发布到你在启动集群时作为参数提供的亚马逊托管服务 Prometheus 终端节点。

  4. 打开每个文件并将 amzn-s3-demo-bucket 替换为步骤 2 中的存储桶的名称。

  5. 使用创建带有add_prometheus_endpoint_launcher.sh引导操作的EMR集群。 AWS CLI 在以下命令中,将 amzn-s3-demo-bucket 替换为包含引导操作的存储桶,并将 managedpro-remote-write-workspace-url 替换为 Amazon Managed Service for Prometheus 工作区的远程写入端点。请务必指定一个等于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 代理会将其收集的指标发布到适用于 Prometheus 的亚马逊托管服务。

将 Amazon Managed Service for Prometheus 用作 Amazon Managed Grafana 的数据来源

亚马逊EMR将集群指标发布到亚马逊 Prometheus 托管服务后,您可以使用以下步骤使用亚马逊托管 Grafana 对指标进行可视化:

  1. 使用创建亚马逊托管 Grafana 工作空间和具有相应权限的用户。 AWS Management Console 有关更多信息,请参阅《Amazon Managed Grafana 用户指南》中的创建工作区

  2. 将 Amazon Managed Service for Prometheus 工作区添加作为 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_idinstance_idservice_name

此外, CloudWatch 代理发布到亚马逊 Prometheus 托管服务的所有应用程序指标都使用该标签代替。job service_name但是,系统指标继续使用 service_name 标签。