我想监控 hbase 的主要压缩。对于我想知道的每张桌子
- 何时启动(由 hbase 或用户)
- 当它完成时
我怎样才能监控这个?
- 通过 JMX?
- 通过用户界面?
一般来说,我应该监控哪些附加参数来检测是否需要进行主要压实?
我知道答案有点晚了,但你也可以试试 Hannibal,而不是手动查看日志文件。它是一个开源工具,可为每个区域提供历史图表。这些图表显示了压缩发生的时间以及它们花费了多长时间。
这是 hbase 版本 0.96 和 0.98 的情况
当压缩开始时,可以从以下位置收集 HBase 压缩的状态:
<hbase.master.ip>:<hbase.master.info.port>/dump
即10.4.4.40:60010/dump
在标题为
服务器:
<hostname>,60020,1406845954503: ...<other stuff here>...
totalCompactingKVs=9121040186, currentCompactedKVs=14351361679,
compactionProgressPct=1.5734347,...
compactionProgressPct
给出您当前正在处理的已完成压实的百分比。
一个更友好的查看压缩的方法在这里:
http://<hbase.regionserver.ip>:<hbase.regionserver.info.port>/rs-status#queueStats
它将为您提供如下所示的统计信息:
可以从 Hbase 日志或 Regionservers GUI 中查看压缩状态,但是如果我们有大量事务,则很难从日志中跟踪压缩区域状态。GUI 仅显示同一节点上的压缩状态,并且在 GUI 中查看很繁琐如果我们有“n”个区域服务器
将收集跨区域服务器的在线压缩区域状态的实用程序下载到给定表。Github链接到
StatusUtil.java
我们可以通过 JMX 获取压缩状态。
compactionQueueSize, compactionSizeNumOps, compactionSizeAvgTime, compactionSizeMinTime, compactionSizeMaxTime, compactionTimeNumOps, compactionTimeAvgTime, compactionTimeMinTime, compactionTimeMaxTime
启用 JMX 指标,如http://hbase.apache.org/metrics.html所示
您可以在此处下载 JMX 示例