如何监控hbase的主要压缩

时间:2012-11-13 15:56:14

标签: java hbase

我想监控hbase的主要压缩。 对于我想知道的每张桌子

  • 启动时(由hbase或用户启动)
  • 完成后

我该如何监控?

  • 通过JMX?
  • 通过UI?

一般情况下,我应该监控哪些附加参数来检测是否需要进行主要压缩?

5 个答案:

答案 0 :(得分:6)

我知道答案有点晚了,但是不要手动查看日志文件,你也可以试试Hannibal。它是一个开源工具,为每个区域提供历史图表。图表显示压缩何时发生以及它们花了多长时间。

https://github.com/sentric/hannibal/

答案 1 :(得分:4)

HBase通过Apache Hadoop的指标系统导出大量指标。这些指标也通过jmx公开。因此,gangliajmx是开始观察HBase导出指标的简单方法。其他选项包括OpenTSDB和专有条目。

在ganglia或jmx中,您要查看的指标是hbase.regionserver.compactionQueueSize。这是已安排的压缩次数。

RegionServer UI还包含一些指标的副本,包括compactionQueueSize。 Here's a screenshot of a 0.94 version.更高版本的HBase看起来会更好,但这只是一个例子。

答案 2 :(得分:4)

hbase版本为0.96和0.98

当压缩开始并且可以从以下位置收集HBase Compactions的状态时: <hbase.master.ip>:<hbase.master.info.port>/dump10.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

它会为您提供如下所示的统计信息: enter image description here

答案 3 :(得分:2)

可以从Hbase日志或Regionservers GUI查看压缩状态但是如果我们进行了大量的事务处理,则很难从日志中跟踪压缩区域状态。 GUI仅显示同一节点上的压缩状态,并且在GUI中查看是乏味的。如果我们已经&#39; n&#39; regionservers

  

将跨Regionservers收集在线压缩区域状态的实用程序下载到给定表。 Github linkStatusUtil.java

答案 4 :(得分:0)

我们可以通过JMX获得压缩状态。

compactionQueueSize, compactionSizeNumOps, compactionSizeAvgTime, compactionSizeMinTime, compactionSizeMaxTime, compactionTimeNumOps, compactionTimeAvgTime, compactionTimeMinTime, compactionTimeMaxTime

启用JMX指标,如http://hbase.apache.org/metrics.html

所示

您可以下载JMX示例here