您可以通过JMX连接器查询Presto集群中所有节点的JMX信息。通过修改本连接器的配置,可以实现JMX信息定期转储的功能。本连接器通常用于系统监控和调试。

前提条件

已创建DataLake集群或Hadoop集群,并选择了Presto服务,详情请参见创建集群

配置连接器

进入EMR控制台的Presto服务的配置页面,在服务配置区域,单击jmx.properties页签,修改或新增以下参数,参数值请根据您实际情况修改。

参数 描述
connector.name Connector的名称。
jmx.dump-tables 是用逗号隔开的MBean(Managed Beans)列表。该配置项指定了每个采样周期哪些MBean指标会被采样并存储到内存中。
如果指标项的名称中包含逗号,则需要使用\\,进行转义,如下所示。
connector.name=jmx
jmx.dump-tables=io.trino.memory:type=memorypool\\,name=general,\
   io.trino.memory:type=memorypool\\,name=system,\
   io.trino.memory:type=memorypool\\,name=reserved      
jmx.dump-period 设置采样周期,默认为10s。
jmx.max-entries 设置历史记录的最大长度,默认为86400条。

数据表

JMX连接器提供了如下两个Schemas:
  • current:包含了Presto集群中每个节点当前的MBean。MBean的名称即为current中的表名,如果MBean的名称中包含非标准字符,则需要在查询时使用双引号(")括起来。示例如下:
    • 列出运行时项目中的所有数据项。
      SHOW TABLES FROM jmx.current;        
    • 获取每个节点的JVM信息。
      SELECT node, vmname, vmversion
      FROM jmx.current."java.lang:type=runtime";   
      返回信息如下所示。
            node    |              vmname               | vmversion
      --------------+-----------------------------------+-----------
       ddc4df17-xxx | Java HotSpot(TM) 64-Bit Server VM | 24.60-b09
      (1 row)   
    • 获取每个节点最大和最小的文件描述符个数指标。
      SELECT openfiledescriptorcount, maxfiledescriptorcount
      FROM jmx.current."java.lang:type=operatingsystem";
      返回信息如下所示。
      openfiledescriptorcount | maxfiledescriptorcount
      -------------------------+------------------------
                           329 |                  10240
      (1 row)          
  • history:包含了配置文件中配置的需要转储的指标对应的数据表。您可以通过以下命令进行查询。
    SELECT "timestamp", "uptime" FROM jmx.history."java.lang:type=runtime";
    返回信息如下所示。
            timestamp        | uptime
    -------------------------+--------
     2016-01-28 10:18:50.000 |  11420
     2016-01-28 10:19:00.000 |  21422
     2016-01-28 10:19:10.000 |  31412
    (3 rows)