您可以通过JMX连接器查询Presto集群中所有节点的JMX信息。通过修改本连接器的配置,可以实现JMX信息定期转储的功能。本连接器通常用于系统监控和调试。
前提条件
已创建Hadoop集群,并选择了Presto服务,详情请参见创建集群。
配置连接器
在Presto服务的配置页面,修改未被使用的
connector[x].properties,添加以下内容,以便启用JMX连接器。connector.name=jmx 如果希望定期转储JMX数据,可以在自定义配置中添加以下内容。
connector.name=jmx
jmx.dump-tables=java.lang:type=Runtime,com.facebook.presto.execution.scheduler:name=NodeScheduler
jmx.dump-period=10s
jmx.max-entries=86400 | 参数 | 描述 |
| connector.name | Connector的名称。 |
| jmx.dump-tables | 是用逗号隔开的MBean(Managed Beans)列表。该配置项指定了每个采样周期哪些MBean指标会被采样并存储到内存中。 如果指标项的名称中包含逗号,则需要使用 \\,进行转义,如下所示。 |
| jmx.dump-period | 设置采样周期,默认为10 s。 |
| 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)
该文章对您有帮助吗?