读者来信 | 如何判断HBase Major Compact是否执行完毕?(已解决)
前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的;于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:《读者来信》。欢迎关注本人微信公众号《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相关的指标,分别是totalCompactingKVs 与 currentCompactedKVs。其实指标 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工作笔记】
读者来信 | 如何判断HBase Major Compact是否执行完毕?(已解决)的更多相关文章
- 读者来信 | 如果你家HBase集群Region太多请点进来看看,这个问题你可能会遇到
前言:<读者来信>是HBase老店开设的一个问答专栏,旨在能为更多的小伙伴解决工作中常遇到的HBase相关的问题.老店会尽力帮大家解决这些问题或帮你发出求救贴,老店希望这会是一个互帮互助的 ...
- 读者来信 | 刚搭完HBase集群,Phoenix一启动,HBase就全崩了,是什么原因?(已解决)
前言:之前有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的:于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:<读者来信>.如遇到本人能力有限难以解决的问题,我 ...
- 读者来信-5 | 如果你家HBase集群Region太多请点进来看看,这个问题你可能会遇到
前言:<读者来信>是HBase老店开设的一个问答专栏,旨在能为更多的小伙伴解决工作中常遇到的HBase相关的问题.老店会尽力帮大家解决这些问题或帮你发出求救贴,老店希望这会是一个互帮互助的 ...
- HBase的compact分析
HBase是基于LSM树存储模型的分布式NoSQL数据库.LSM树对比普遍的B+树来说,能够获得较高随机写性能的同时,也能保持可靠的随机读性能(可参考这里).在进行读请求的时候,LSM树要把多个子树( ...
- HBase什么时候作minor major compact
HBase什么时候做minor major compact我们都知道compact分为两类,一类叫Minor compact ,一类叫Major compact,两者有什么区别呢?两者的区别在于:Mi ...
- 读者来信 | 设置HBase TTL必须先disable表吗?(已解决)
今日有朋友加好友与我探讨一些问题,我觉得这些问题倒挺有价值的:于是就想在本公众号开设一个问答专栏,方便技术交流与分享,专栏名就定为:<读者来信>.如遇到本人能力有限难以解决的问题,该贴将会 ...
- 关于hasNextInt判断后无限循环输出else项的解决办法
话不多说,上来就是干! import java.util.Scanner; public class Test_hasNextInt { /** * @param args */ public sta ...
- HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较
摘要: 在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...
- js判断flash文件是否加载完毕
轮询判断加载进度 img的加载完成有onload方法,一直不知道该怎么判断swf文件是否加载完毕了? 在应用中使用了轮询判断加载进度值PercentLoaded是否达到100,经测试,可以达到效果. ...
随机推荐
- 峰哥说技术:01-Spring Boot介绍
Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 Spring Boot介绍 A.Spring Boot是什么? 由于Spring是一个轻量级的企业开发框架 ...
- iTerm2 都不会用,还敢自称老司机?(上)
对于需要长期与终端打交道的工程师来说,拥有一款称手的终端管理器是很有必要的,对于 Windows 用户来说,最好的选择是 Xshell,这个大家都没有异议.但对于 MacOS 用户来说,仍然毋庸置疑, ...
- 使用JS检测自定义协议是否存在
[该博客是拼接他人的,原因我们这边PC的开发人员问我,有没有关于js某个对象直接能检测手机或者电脑的自定义协议的,我上网搜了下,貌似移动端的解决比较多] 最终解决方案:还是需要github上面大神写的 ...
- flask 设置https请求 访问flask服务器
学习过程中想要学教程中一样,做个假的微信公众号推送,不过去了微信开发文档怎么一直说需要https的请求(教学中没有说需要https,一直是http) 但是我的服务器只能使用http请求访问,如果硬是要 ...
- Go 的 http 包的源码,通过代码我们可以看到整个的 http 处理过程
func (srv *Server) Serve(l net.Listener) error {defer l.Close() var tempDelay time.Duration // how l ...
- 01 UIPath抓取网页数据并导出Excel(非Table表单)
上次转载了一篇<UIPath抓取网页数据并导出Excel>的文章,因为那个导出的是table标签中的数据,所以相对比较简单.现实的网页中,有许多不是通过table标签展示的,那又该如何处理 ...
- css中:如何让一个图片(不知道宽高,宽高可能比父元素div大),在父元素div内部水平垂直居中,并且不溢出父元素div,且图片不拉伸变形(可等比例缩小)?
欢迎进入:http://www.jscwwd.com/article/list/%E5%85%A8%E9%83%A8 效果图: 不管父元素的宽高怎么变化,图片都是水平垂直居中的,并且不溢出父元素. 注 ...
- 原生ajax动态添加数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 聊聊count(*)
count(*) 的实现方式 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高 InnoDB 引擎就麻烦了,它执行 count(*) 的时候 ...
- Uncovering thousands of new peptides with sequence-mask-search hybrid de novo peptide sequencing framework (使用序列掩码搜索结合肽段从头测序框架发现了数千个新肽段)-解读人:刘佳维
期刊名:Molecular & Cellular Proteomics 发表时间:(2019年12月) IF:4.828 单位: 朱拉隆功大学 费城威斯塔研究所 物种:人 技术:de novo ...