前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的;于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:《读者来信》。欢迎关注本人微信公众号《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

转载请注明出处!欢迎关注本人微信公众号【HBase工作笔记】

最新文章

  1. JavaScript 面向对象继承详解
  2. Slider 滚动条 Pagination分页插件 JS Ajax 数据范围筛选 加载 翻页 笔记
  3. C++中的const关键字的用法
  4. Memcached总结三:Memcached常用命令及使用说明
  5. POJ - 2711 Leapin' Lizards
  6. ESXI转HYPER-V,问题接二连三啊(VMDK转VHD)
  7. oracle检查点队列与增量检查点【转载】
  8. CreateEvent、SetEvent、ResetEvent和WaitForSingleObject
  9. 河南多校大一训练赛 G 硬币
  10. Java IO整理
  11. 编写一个python脚本功能-备份
  12. Cesium原理篇:3D Tiles(3)个人总结
  13. Java 判断回文字符串有多少和其中的最大字符串
  14. python 全栈开发,Day3(正式)
  15. 20155214&20155216 实验二:固件程序设计
  16. 网站开发进阶(二十六)js刷新页面方法大全
  17. 在php中实现Redis的订阅与发布
  18. 刚发现 CSS 还存在一个命名规范 B.E.M
  19. springboot+mybatis+cucumber
  20. Flutter: X Android license status unknown

热门文章

  1. javascript中this指向的问题
  2. GPS授时器简介
  3. 7,MapReduce基础
  4. nohub 将程序永久运行下去
  5. html5 中高级选择器 querySelector
  6. 《ASP.NET Core 3框架揭秘》博文汇总
  7. Scikit-learn之特征抽取
  8. 将config从内部移动到外部 3部曲
  9. 【学习参考】Animate.css动画演示
  10. JavaScript每日学习日记(2)