本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 EMR 7.1.0 配置 CloudWatch 代理
从 Amazon EMR 7.1.0 开始,您可以使用亚马逊配置将亚马逊 CloudWatch 代理EMR配置API为使用其他系统指标、添加应用程序指标和更改指标目标。有关如何使用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主JMX指标 -
emr-hbase-region-server-metrics
— 配置HBase区域服务器JMX指标 -
emr-hbase-rest-server-metrics
— 配置HBaseREST服务器JMX指标 -
emr-hbase-thrift-server-metrics
— 配置 HBase Thrift Server 指标 JMX
下表描述了所有分类的可用属性和配置。
emr-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 | 注意 |
---|---|---|---|---|---|
metrics_destination |
可选 | 确定集群指标是发布到亚马逊 CloudWatch 还是发布到亚马逊 Prometheus 托管服务。 | "CLOUDWATCH" | "CLOUDWATCH", "PROMETHEUS" | 此属性不区分大小写。例如,“Cloudwatch” 与 “CLOUDWATCH” 相同。 |
prometheus_endpoint |
可选 | 如果设置metrics_destination 为 PROMETHEUS “”,则此属性将 CloudWatch 代理配置为向提供的亚马逊托管服务 Prometheus 远程写入端点发送指标。 |
不适用 | 任何适用于 Prometheus 的有效亚马逊托管服务远程写入。URL远程写入URL格式为
|
如果设置为 “PROMETHEUS”,metrics_destination 则此字段为必填字段。如果您不提供密钥或值为空字符串,则配置将失败。 |
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 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,BlocksCached,BlocksRead 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。 DataNode | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-hdfs-namenode-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=NameNode,name=FSNamesystem 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,BlockCapacity,CapacityUsedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。 NameNode | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-nodemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=NodeManager,name=NodeManagerMetrics 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,MaxCapacity,AllocatedGB 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。YARN NodeManager | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hadoop-yarn-resourcemanager-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=ResourceManager,name=PartitionQueueMetrics 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,MaxCapacity,MaxCapacityVCores 。 |
otel.metric.export.interval |
可选 | 收集 Hadoop 指标的频率(以毫秒为单位)。YARN ResourceManager | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-master-metrics 属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=Master,sub=AssignmentManager 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,AssignFailedCount,AssignSubmittedCount 。 |
otel.metric.export.interval |
可选 | 收集HBase主指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-region-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=RegionServer,sub=IPC 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。MBean例如,numActiveHandler,numActivePriorityHandler 。 |
otel.metric.export.interval |
可选 | 收集HBase区域服务器指标的频率(以毫秒为单位)。 | “60000” | 一个指定毫秒数的字符串。只接受整数。 |
emr-hbase-rest-server-指标属性
属性 | 必需 | 描述 | 默认值 | 可能的值 |
---|---|---|---|---|
|
可选 | 不适用 | MBean该 CloudWatch 代理应从中收集指标,例如Hadoop:service=HBase,name=REST 。您可以在 Amazon 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。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 7.0 EMR 版本的示例JMXYAML文件中找到示例MBean |
一个字符串,其中包含与相关联的以逗号分隔的指标列表。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
。代理还会收集每个 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 ResourceManaager 的实例收集
AllocateNumOps
和NodeUpdateNumOps
指标。
适用于 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