本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 EMR 7.1.0 配置 CloudWatch 代理
从 Amazon EMR 7.1.0 开始,您可以使用亚马逊 EMR 配置 API 将亚马逊 CloudWatch 代理配置为使用其他系统指标、添加应用程序指标和更改指标目标。有关如何使用 EMR 配置 API 来配置集群应用程序的更多信息,请参阅配置应用程序。
注意
7.1.0 仅支持重新配置类型。OVERWRITE
有关重新配置类型的更多信息,请参阅重新配置实例组时的注意事项。
配置架构
emr-metrics
有以下分类:
-
emr-system-metrics
— 配置系统指标,例如 CPU、磁盘和内存。 -
emr-hadoop-hdfs-datanode-metrics
— 配置 Hadoop DataNode JMX 指标 -
emr-hadoop-hdfs-namenode-metrics
— 配置 Hadoop NameNode JMX 指标 -
emr-hadoop-yarn-nodemanager-metrics
— 配置 Yarn NodeManager JMX 指标 -
emr-hadoop-yarn-resourcemanager-metrics
— 配置 Yarn ResourceManager JMX 指标 -
emr-hbase-master-metrics
— 配置 HBase Master JMX 指标 -
emr-hbase-region-server-metrics
— 配置 HBase 区域服务器 JMX 指标 -
emr-hbase-rest-server-metrics
— 配置 HBase REST 服务器 JMX 指标 -
emr-hbase-thrift-server-metrics
— 配置 HBase 节俭服务器 JMX 指标
下表描述了所有分类的可用属性和配置。
emr-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 | 注意 |
---|---|---|---|---|---|
metrics_destination |
可选 | 确定集群指标是发布到亚马逊 CloudWatch 还是发布到亚马逊 Prometheus 托管服务。 | “云观察” | “CLOUDWATCH”、“PROMETHEUS” | 此属性不区分大小写。例如,“Cloudwatch” 与 “CLOUDWATCH” 相同。 |
prometheus_endpoint |
可选 | 如果设置metrics_destination 为 “PROMETHEUS”,则此属性将 CloudWatch 代理配置为向提供的亚马逊托管服务 Prometheus 远程写入端点发送指标。 |
不适用 | 任何有效的亚马逊托管服务 Prometheus 远程写入 URL。远程写入 URL 格式为
|
如果设置为 “PROMETHE metrics_destination US”,则此字段为必填字段。如果您不提供密钥或值为空字符串,则配置将失败。 |
emr-system-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 | 注意 |
---|---|---|---|---|---|
metrics_collection_interval |
可选 | 从 CloudWatch 代理收集和发布指标的频率(以秒为单位)。 | “60” | 指定秒数的字符串。只接受整数。 | 您可以使用各个指标组中的metrics_collection_interval 属性来覆盖此属性。 |
emr-system-metrics 配置
emr-hadoop-hdfs-datanode-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=DataNode,name=DataNodeActivity 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,BlocksCached,BlocksRead 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。 DataNode | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-hdfs-namenode-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=NameNode,name=FSNamesystem 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,BlockCapacity,CapacityUsedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。 NameNode | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-nodemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=NodeManager,name=NodeManagerMetrics 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,MaxCapacity,AllocatedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop YARN 指标的频率(以毫秒为单位)。 NodeManager | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-resourcemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=ResourceManager,name=PartitionQueueMetrics 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,MaxCapacity,MaxCapacityVCores 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop YARN 指标的频率(以毫秒为单位)。 ResourceManager | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-master-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=HBase,name=Master,sub=AssignmentManager 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,AssignFailedCount,AssignSubmittedCount 。 |
otel.metric.export.interval |
可选 | 收集 HBase Master 指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-region-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=HBase,name=RegionServer,sub=IPC 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,numActiveHandler,numActivePriorityHandler 。 |
otel.metric.export.interval |
可选 | 收集 HBase 区域服务器指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-rest-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=HBase,name=REST 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,successfulPut,successfulScanCount 。 |
otel.metric.export.interval |
可选 | 收集 HBase Rest Server 指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-thrift-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | CloudWatch 代理应从中收集指标的 MBean,例如Hadoop:service=HBase,name=Thrift,sub=ThriftOne 。您可以在亚马逊 EMR 7.0 版本的 JMX YAML 文件示例 JMX YAML 文件中找到示例 mBean 名称及其对 |
一个字符串,其中包含与 MBean 关联的以逗号分隔的指标列表。例如,BatchGet_max,BatchGet_mean 。 |
otel.metric.export.interval |
可选 | 收集 HBase Thrift 服务器指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
系统指标配置示例
以下示例演示如何将 CloudWatch 代理配置为停止导出所有系统指标。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": {}, "Configurations": [] } ] } ]
以下示例将 CloudWatch 代理配置为导出默认系统指标。如果您已经至少重新配置过一次系统指标,那么这样做是将代理重置回仅导出默认系统指标的快速方法。此重置还会删除之前重新配置的所有应用程序指标。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [] } ]
以下示例将集群配置为导出cpu
mem
、和disk
指标。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-system-metrics", "Properties": { "metrics_collection_interval": "20" }, "Configurations": [ { "Classification": "cpu", "Properties": { "metrics": "cpu_usage_guest,cpu_usage_idle", "metrics_collection_interval": "30", "drop_original_metrics": "cpu_usage_guest" } }, { "Classification": "mem", "Properties": { "metrics": "mem_active" } }, { "Classification": "disk", "Properties": { "metrics": "disk_used_percent", "resources": "/,/mnt", "drop_original_metrics": "" } } ] } ] } ]
前面的示例配置具有以下属性:
-
代理每 30 秒收集所有 CPU 的
cpu_guest
指标。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。 -
代理每 30 秒收集所有 CPU 的
cpu_idle
指标。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。代理还会收集每个 CPU 的指标。你可以在同一个命名空间中找到它们。代理收集此指标是因为该drop_original_metrics
属性不包含cpu_idle
,因此代理不会忽略该指标。 -
代理每 20 秒收集一次
mem_active
指标。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。 -
代理每 20 秒收集一次
/
和/mnt
磁盘装载的disk_used_percent
指标。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。代理还会收集每次挂载的指标。你可以在同一个命名空间中找到它们。代理收集此指标是因为该drop_original_metrics
属性不包含disk_used_percent
,因此代理不会忽略该指标。
应用程序指标配置示例
以下示例将 CloudWatch 代理配置为停止导出 Hadoop Namenode 服务的指标。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-hadoop-hdfs-namenode-metrics", "Properties": {}, "Configurations": [] } ] } ]
以下示例将集群配置为导出 Hadoop 应用程序指标。
[ { "Classification": "emr-metrics", "Properties": {}, "Configurations": [ { "Classification": "emr-hadoop-hdfs-namenode-metrics", "Properties": { "Hadoop:service=NameNode,name=FSNamesystem": "BlockCapacity,CapacityUsedGB", "otel.metric.export.interval": "20000" }, "Configurations": [] }, { "Classification": "emr-hadoop-hdfs-datanode-metrics", "Properties": { "Hadoop:service=DataNode,name=JvmMetrics": "MemNonHeapUsedM", "otel.metric.export.interval": "30000" }, "Configurations": [] }, { "Classification": "emr-hadoop-yarn-resourcemanager-metrics", "Properties": { "Hadoop:service=ResourceManager,name=CapacitySchedulerMetrics": "AllocateNumOps,NodeUpdateNumOps" }, "Configurations": [] } ] } ]
前面的示例具有以下属性:
-
代理每 20 秒就会从运行 Hadoop Namenode 服务的实例收集
BlockCapacity
和CapacityUsedGB
指标。 -
代理每 30 秒从运行 Hadoop Datanode 服务的实例收集
MemNonHeapUsedM
指标。 -
代理每 30 秒就会从运行 Hadoop YARN 的实例收集
AllocateNumOps
和NodeUpdateNumOps
指标。 ResourceManaager
适用于 Prometheus 的亚马逊托管服务示例
以下示例演示如何配置 CloudWatch 代理以将指标导出到适用于 Prometheus 的亚马逊托管服务。
如果您当前正在将指标导出到适用于 Prometheus 的亚马逊托管服务,并且想要重新配置集群的指标并继续将指标导出到适用于 Prometheus 的亚马逊托管服务,则必须包括属性和和。metrics_destination
prometheus_endpoint
[ { "Classification": "emr-metrics", "Properties": { "metrics_destination": "prometheus", "prometheus_endpoint": "http://amp-workspace/api/v1/remote_write" }, "Configurations": [] } ]
要使用 CloudWatch 代理将指标导出到 CloudWatch,请使用以下示例。
[ { "Classification": "emr-metrics", "Properties": { "metrics_destination": "cloudwatch" }, "Configurations": [] } ]
注意
CloudWatch 代理有一个 Prometheus 导出器,可以重命名某些属性。对于默认指标标签,亚马逊 Prometheus 托管服务使用下划线字符代替亚马逊使用的句点。 CloudWatch 如果您使用 Amazon Managed Grafana 来可视化适用于 Prometheus 的亚马逊托管服务中的默认指标,则标签将显示为、、和。cluster_id
instance_id
node_type
service_name