读者来信 | 如何判断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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HBase 监控 | HBase Metrics 初探(一)
前言:对于任意一个系统而言,做好监控都是非常重要的,HBase也不例外。经常,我们会从JMX中获取相关指标来做展示、对HBase进行监控,那这些指标是怎么生成的呢?如果你想自定义自己的监控指标又该怎么做呢?基于好奇之心和学习的目的,最近打算学习一下HBase监控相关原理及实现,今天先简单捋一捋思路。 1. 如何下手? 我一向比较喜欢先看项目所依赖的pom文件,打开HBase源码,有两个非常相关的模块: hbase-metrics-api hbase-metrics 分别打开两个子项目的pom文件查看,搜索关键词'metrics'碰碰运气,有两个小发现: 子项目hbase-metrics依赖子项目hbase-metrics-api,子项目hbase-metrics-api大部分是接口类,而子项目hbase-metrics基本上是对子项目hbase-metrics-api接口类的实现类。 子项目hbase-metrics中有metrics相关继承式依赖,如下: <dependency> <groupId>io.dropwizard.metrics</group...
- 下一篇
HBase协处理器加载的三种方式
本文主要给大家罗列了HBase协处理器加载的三种方式:Shell加载(动态)、Api加载(动态)、配置文件加载(静态)。其中静态加载方式需要重启HBase。 我们假设我们已经有一个现成的需要加载的协处理器Jar包:HelloCoprocessor-0.0.1.jar。 协处理器加载的三种方式 Shell加载 1. 上传HDFS 将打包好的HelloCoprocessor-0.0.1.jar上传服务器,然后放到HDFS上。 # 切换hadoop用户,创建演示目录 $ hdfs dfs -mkdir /usr/hbase/coprocessor $ hdfs dfs -put HelloCoprocessor-0.0.1.jar /usr/hbase/coprocessor 2. Shell 加载协处理器 我们假设其协处理器类的包名为:org.myname.hbase.Coprocessor.RegionObserverExampleShell 操作如下: hbase> disable 'mytable' # 禁用表,可选 hbase> alter 'mytable', MET...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果