本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon EMR 7.1.0 配置 CloudWatch 代理
从 Amazon EMR 7.1.0 开始,您可以使用 Amazon EMR 配置 API 将Amazon 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 Thrift Server JMX 指标
下表列出了所有分类的可用属性和配置。
emr-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 | 备注 |
---|---|---|---|---|---|
metrics_destination |
可选 | 确定是否将集群指标发布到 Amazon CloudWatch 或 Amazon Managed Service for Prometheus。 | "CLOUDWATCH" | "CLOUDWATCH"、"PROMETHEUS" | 此属性不区分大小写。例如,"Cloudwatch" 与 "CLOUDWATCH" 相同。 |
prometheus_endpoint |
可选 | 如果设置metrics_destination 为 “PROMETHEUS",则此属性将 CloudWatch 代理配置为将指标发送到提供的 Amazon Managed Service for Prometheus 远程写入端点。 |
不适用 | 任何有效的 Amazon Managed Service for Prometheus 远程写入 URL。远程写入 URL 格式为
|
如果 metrics_destination 设置为 "PROMETHEUS",则该字段为必填字段。如果未提供键或如果值为空字符串,则预置将失败。 |
emr-system-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 | 备注 |
---|---|---|---|---|---|
metrics_collection_interval |
可选 | 从 CloudWatch 代理收集和发布指标的频率(秒)。 | "60" | 指定秒数的字符串。只接受整数。 | 您可以使用各个指标组中的 metrics_collection_interval 属性来覆盖此属性。 |
emr-system-metrics 配置
emr-hadoop-hdfs-datanode-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=DataNode,name=DataNodeActivity 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 BlocksCached,BlocksRead 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(毫秒)。 DataNode | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hadoop-hdfs-namenode-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=NameNode,name=FSNamesystem 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 BlockCapacity,CapacityUsedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(毫秒)。 NameNode | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-nodemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=NodeManager,name=NodeManagerMetrics 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 MaxCapacity,AllocatedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop YARN YARN YARN YARN YARN 指标的频率(毫秒)。 NodeManager | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-resourcemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=ResourceManager,name=PartitionQueueMetrics 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 MaxCapacity,MaxCapacityVCores 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop YARN YARN YARN YARN YARN 指标的频率(毫秒)。 ResourceManager | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hbase-master-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=Master,sub=AssignmentManager 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 AssignFailedCount,AssignSubmittedCount 。 |
otel.metric.export.interval |
可选 | 收集 HBase Master 指标的频率(毫秒)。 | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hbase-region-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=RegionServer,sub=IPC 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 numActiveHandler,numActivePriorityHandler 。 |
otel.metric.export.interval |
可选 | 收集 HBase 区域服务器指标的频率(毫秒)。 | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hbase-rest-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=REST 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 successfulPut,successfulScanCount 。 |
otel.metric.export.interval |
可选 | 收集 HBase Rest Server 指标的频率(毫秒)。 | "60000" | 指定毫秒数的字符串。只接受整数。 |
emr-hbase-thrift-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean 该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=Thrift,sub=ThriftOne 。您可以在 Amazon EMR 发行版 7.0 的示例 JMX YAML 文件 |
包含与关联的指标列表的字符串(以逗号分隔)。 MBean例如 BatchGet_max,BatchGet_mean 。 |
otel.metric.export.interval |
可选 | 收集 T HBase hrift 服务器指标的频率(毫秒)。 | "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_guest
指标 CPUs。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。 -
代理每 30 秒收集一次所有
cpu_idle
指标 CPUs。您可以在 CloudWatch 命名空间下找到聚合指标CWAgent > cluster.id, instance.id, node.type, service.name
。代理还会收集 per-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
。代理还会收集 per-mount 指标。可以在同一命名空间中找到。代理收集此指标是因为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
Amazon Managed Service for Prometheus 示例
以下示例演示了如何配置 CloudWatch 代理以将指标导出到 Amazon Managed Service for Prometheus。
如果您当前正在将指标导出到 Amazon Managed Service for Prometheus,想要重新配置集群的指标,并继续将指标导出到 Amazon Managed Service for 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 导出器,它可以重命名某些属性。对于默认指标标签,Amazon Managed Service for Prometheus 使用下划线字符代替 Amazon 使用的句点。 CloudWatch 如果您使用 Amazon Managed Grafana 来可视化 Amazon Managed Service for Prometheus 中的默认指标,则标签将显示为 cluster_id
、instance_id
、node_type
和 service_name
。