您现在的位置是:首页 > 文章详情

读者来信 | 如何判断HBase Major Compact是否执行完毕?(已解决)

日期:2020-04-16点击:290

前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的;于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:《读者来信》。欢迎关注本人微信公众号《HBase工作笔记》,扫描文末二维码解锁更多姿势!

来信人:罗*铭

小猿提问

如何判断HBase Major Compact是否执行完毕?

小猿解答

这里提供两种查看方式:

一种是HBase WebUI 界面; 另外一种是HBase Shell命令行 。
我们下面看一下。

1. HBase WebUI

点击Web首页Compactions按钮查看每一个RS Compact完成情况;
点击ServerName进入RS Web页后点击Compaction Metrics可查看该RS上每一个Region Compact 完成情况。

2. HBase Shell

通过Shell方式查看同WebUI查看大同小异,只不过没有将这些指标可视化而已。如果有兴趣,可以自己采集这些指标做一个漂亮的监控界面~

通过命令 status 'simple' 可查看HBase RS级别的一些指标,其中 compactionProgressPct=1.0 即表明RS Compact完成。如下:

hbase(main):002:0> status 'simple' active master: xxx.xx.xx.xx:6000 1539254611835 1 backup masters xxx.xx.xx.xx:6000 1539254627238 4 live servers xxx.xx.xx.xx:6002 1575619570126 requestsPerSecond=211.0, numberOfOnlineRegions=293, usedHeapMB=4861, maxHeapMB=16384, numberOfStores=293, numberOfStorefiles=432, storefileUncompressedSizeMB=97691, storefileSizeMB=35689, compressionRatio=0.3653, memstoreSizeMB=891, storefileIndexSizeMB=0, readRequestsCount=738897443, writeRequestsCount=717989941, rootIndexSizeKB=5413, totalStaticIndexSizeKB=149724, totalStaticBloomSizeKB=63325, totalCompactingKVs=1389414755, currentCompactedKVs=1389414755, compactionProgressPct=1.0, coprocessors=[HBaseSimHashSetBuildSystem, MultiRowMutationEndpoint] xxx.xx.xx.xx:6002 1575619966048 ... 0 dead servers Aggregate load: 962, regions: 1176

通过命令 status 'detailed' 可查看HBase RS Region 级别的一些指标,其中 compactionProgressPct=1.0 即表明RS Compact完成。如下:

hbase(main):002:0> status 'detailed' active master: xxx.xx.xx.xx:6000 1539254611835 1 backup masters xxx.xx.xx.xx:6000 1539254627238 4 live servers xxx.xx.xx.xx:6002 1575619570126 "namespace:table,20,1577443984105.518a1fbd9dd64e5956e591fa23556f48." numberOfStores=1, numberOfStorefiles=1, storefileUncompressedSizeMB=0, lastMajorCompactionTimestamp=0, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=332285, currentCompactedKVs=332285, compactionProgressPct=1.0, completeSequenceId=-1, dataLocality=1.0 "namespace:table,1f,1577443984105.61c4ba95dbed1eb52da78c448e2f4bbf." ... 0 dead servers

知识点补充

1. 计算公式

在上面的Shell命令行输出中我们还看到有两个与Compact相关的指标,分别是totalCompactingKVscurrentCompactedKVs。其实指标 compactionProgressPct 正是由二者计算得来,如下:

float compactionProgressPct = Float.NaN; if( this.totalCompactingKVs > 0 ) { compactionProgressPct = Float.valueOf( this.currentCompactedKVs / this.totalCompactingKVs); }

2. 小版本bug

可能有的朋友会发现自己家的 HBase compactionProgressPct 指标出现了大于100% 情况,或是 currentCompactedKVs>totalCompactingKVs 等情况,其实这是HBase小版本出现的一个bug,该bug在 2.0.0-beta 版本中才修复完毕。相关jira 如下:

  • HBASE-19767
  • HBASE-15906
  • HBASE-11979
    900px
原文链接:https://yq.aliyun.com/articles/755690
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章