HBase专题
文章平均质量分 87
以实际工作经验为基础,为大家分享HBase的深入使用和调优
大猿小猿向前冲
心之所向,素履以往。 生如逆旅,一苇以航。
展开
-
用arthas神器来诊断HBase异常进程
1. 异常突起HBase集群的某一个RegionServer的CPU使用率突然飙升到百分之百,单独重启该RegionServer之后,CPU的负载依旧会逐渐攀上顶峰。多次重启集群之后,CPU满载的现象依然会复现,且会持续居高不下,慢慢地该RegionServer就会宕掉,慢慢地HBase集群就完犊子了。2. 异常之上的现象CDH监控页面来看,除CPU之外的几乎所有核心指标都是正常的,磁盘和网络IO都很低,内存更是充足,压缩队列,刷新队列也是正常的。普罗米修斯的监控也是类似这样的,就不贴图了。监控原创 2021-07-18 20:53:19 · 333 阅读 · 1 评论 -
开源工具 _ HBase表管理系统——HBaseManager2.0.6
1. 更新预览在HBaseManager 2.0.6 版本中,主要集成了Kerberos认证以及初步支持HQL的功能。快速体验站点:http://www.jielongping.com:9527/index 账户密码:admin/admin1232. Kerberos认证如果你的HBase集群集成了Kerberos,那么你需要在配置文件hbase-manager.properties中,为HBaseManager配置Kerberos相关的认证,我的配置示例如下:hbase.manager.zk原创 2021-07-18 20:52:50 · 1156 阅读 · 0 评论 -
从源码层面分析HBase的请求队列参数
1. 背景在用arthas神器来诊断hbase异常进程这篇文章中,我详细地记录了一起生产环境中使用HBase的事故,事故发生的大致起因是,一个异常scan导致CPU使用率飙升至百分之百,且巨高不下,从而导致整个集群宕机。虽然,借助于arthas这个神器,我们很轻易地就定位到了是scan的问题。而且事后,我们在业务层面上也采取了很多的优化手段。但是对于这个罪魁祸首,却一直没有找到一个完美的解决方案,总不能让业务那边一用scan就战战兢兢,如履薄冰吧。在上篇文章的最后,靠着匮乏的多线程功底,对于scan这原创 2021-07-18 20:52:19 · 355 阅读 · 2 评论 -
ZGC初体验——OpenJdk 15编译HBase 1.4.8
文章目录ZGC初体验——OpenJdk 15编译HBase 1.4.81. 前言2. G13. ZGC4. 用AdoptOpenJDK15重编译hbase-1.4.84.1 JDK15在滴滴HBase上的应用4.2 准备工作4.3 项目配置4.4 处理sun.misc.Unsafe not found异常4.5 替换javax.xml.ws.http.HTTPException4.6 程序包javax.annotation不存在4.7 程序包com.sun.javadoc不存在4.8升级jetty4.9 提原创 2021-07-18 20:51:48 · 521 阅读 · 1 评论 -
HBase运维篇 _ ZGC初体验——HBase1.4.8安装部署和测试
文章目录HBase运维篇 | ZGC初体验——HBase1.4.8安装部署和测试1. 摘要2. 开始安装2.1 准备工作2.2 安装部署3. 测试4. 补充一个编译时遇到的异常5. 总结6. 附件HBase运维篇 | ZGC初体验——HBase1.4.8安装部署和测试1. 摘要接上篇文章——HBase源码篇 | ZGC初体验——OpenJdk 15编译HBase 1.4.8,在上篇文章中,我为大家分享了open jdk 15编译hbase-1.4.8的详细过程,并且也得到了最终可安装的tar.gz包。原创 2021-07-18 20:51:18 · 557 阅读 · 1 评论 -
HBase源码篇 _ 记一次HBase高版本JDK兼容性排错
1. 为什么要预分区一张表被首次创建时,只会分配一个region给这个表。因此,在刚刚开始时,所有读写请求都会落在这个region所在的region server上,而不管你整个集群有多少个region server。不能充分地利用集群的分布式特性。2. 最为常见的建表语句create 'leo_test1',{NAME => 'info'}, { NUMREGIONS => 50, SPLITALGO => 'HexStringSplit'}create 'leo_test2'原创 2021-07-18 20:50:43 · 336 阅读 · 1 评论 -
HBase预分区和rowkey设计优化
1. 为什么要预分区一张表被首次创建时,只会分配一个region给这个表。因此,在刚刚开始时,所有读写请求都会落在这个region所在的region server上,而不管你整个集群有多少个region server。不能充分地利用集群的分布式特性。2. 最为常见的建表语句create 'leo_test1',{NAME => 'info'}, { NUMREGIONS => 50, SPLITALGO => 'HexStringSplit'}create 'leo_test2'原创 2021-07-18 20:48:25 · 168 阅读 · 0 评论 -
HBase异常分析
WALs中server文件出现重复 -splitting后缀https://blog.csdn.net/liu16659/article/details/80960323https://issues.apache.org/jira/browse/HBASE-14729%E3%80%91%E3%80%82%E6%9F%A5%E7%9C%8BHDFS%E7%9A%84HBase%E7%9A%84%E8%A1%A8%E7%9B%AE%E5%BD%95%E5%A6%82%E4%B8%8B%EF%BC%9A这.原创 2021-07-17 13:05:47 · 171 阅读 · 1 评论 -
HBase探索篇 _ 单节点多RegionServer部署与性能测试
目录导读文章目录目录导读1. 引言2. 合理的Region数量3. Region数量优化3.1提高RegionServer的堆内存3.2 单节点多Region Server的部署4. 单RS、多RS、单RS大堆集群环境的YCSB压测数据对比5. 总结6. 参考链接1. 引言随着集群中总的Region数持续增长,每个节点平均管理的Region数已达550左右,某些大表的写入流量一上来,Region Server就会不堪重负,相继挂掉。在HBase中,Region的一个列族对应一个MemStore,通常原创 2021-07-17 13:04:10 · 1216 阅读 · 0 评论 -
HBase探索篇 _ ZGC和G1在HBase集群之中的GC性能对比
文章目录1. 前言2. GC之痛3. CMS和G1停顿时间瓶颈4. ZGC 原理4.1 全并发的ZGC4.2 ZGC中的关键技术5. 初探ZGC在HBase中的GC表现6. ZGC与G1 GC的数据统计对比6.1 G16.2 ZGC6.3 G1与ZGC吞吐量相关指标比较7. 总结8. 参考链接1. 前言本文为了衔接公众号中的前几篇ZGC相关的文章,继续探索ZGC在HBase集群中真实的GC表现能力,并把其与G1 GC做一个简单的对比,验证ZGC是否真如传言中的那般,令人叹为观止。在前几篇文章中,我为大原创 2021-07-17 13:02:35 · 396 阅读 · 0 评论 -
HBase探索篇 _ OpenJdk15编译并部署CDH版HBase
文章目录1. 前言2. 准备工作3. 项目配置3.1 项目导入3.2 编译配置3.3 程序包javax.annotation不存在3.4 maven-shade-plugin升级版本3.5 程序包javax.xml.ws.http不存在3.6 Some Enforcer rules have failed.3.7 hbase-spark模块编译报错3.8 处理一些编译时的警告信息4. 本地启动和功能测试4.1 HMaster Application配置4.2 localhost/unresolved:218原创 2021-07-17 13:01:22 · 696 阅读 · 0 评论 -
HBase实践篇 _ 为HBase的ThriftAPI设计连接池
文章目录1. 摘要2. commons-pool22.1 GenericObjectPool2.2 PooledObjectFactory接口2.3 BasePooledObjectFactory类2.4 GenericKeyedObjectPool带Key的对象池2.5 GenericObjectPoolConfig参数配置类3. HBase Thrift 客户端连接池的实现3.1 连接池核心实现类的UML图3.2 快速使用4. 把连接池的功能再包装成一个单例服务5. 总结6. 参考链接1. 摘要客户原创 2021-07-17 12:53:07 · 1045 阅读 · 0 评论 -
HBase开发篇 _ 一文说清HBase Connection的使用
目录导读文章目录目录导读1. 引言2. 单例模式维护HBase的Connection3. 多例模式中维护HBase的Connection4. ConnectionFactory.createConnection方法中的连接池参数5. 总结1. 引言对于很多初次接触HBase的伙伴,在使用其客户端API来构建Connection连接对象的时候,有可能会陷入以下几个误区。类比druid等mysql数据库连接池,自己封装一个Connection对象的资源池,每次使用都从池中取出一个Connection对原创 2021-07-17 12:51:48 · 624 阅读 · 0 评论 -
hbase教程
这里写自定义目录标题欢迎使用Markdown编辑器HBase 教程HBase 快速启动Apache HBase配置文件HBase 基础条件HBase 运行模式HBase 开始运行HBase 默认配置HBase 配置示例Base 重要配置HBase 动态配置HBase 版本号和兼容性HBase 回滚:版本恢复HBase 升级路径使用Apache HBase ShellHBase shell 技巧HBase 数据模型HBase 概念视图HBase 物理视图HBase 命名空间HBase 表、行与列族HBase原创 2021-07-17 12:44:25 · 566 阅读 · 0 评论 -
HBase服务高可用之路的探索
文章目录HBase服务高可用之路的探索一、背景二、HBase熔断API目前已实现的功能三、关于熔断四、借鉴HBase熔断切换在有赞团队内的实践五、熔断在我们的HBase接口服务中的应用六、HBase熔断工作的流程图七、滚动计数RollingNumber1. 滚动计数的概念八、深入理解熔断在我们HBase接口服务中的工作机制1. HBase熔断机制工作的核心参数读写阈值判定的配置示例核心参数解读2. 判断接口是否健康的策略判断当前接口是否健康的详细策略错误阈值说明3. 健康检查九、总结HBase服务高可用之原创 2021-07-17 12:18:04 · 232 阅读 · 0 评论 -
hbase-sdk
hbase-sdk基于hbase-client的相关API开发而来的一款轻量级的HBase ORM框架。 ????hbase-sdk分为spring-boot-starter-hbase和hbase-sdk-core两部分。SpringBoot项目中引入spring-boot-starter-hbase,在普通的Java项目中可以使用hbase-sdk-core。???? 快速开始 |???? 视频教程 |???? 官方文档 |???? 捐赠我们 |???? English原创 2021-07-17 12:10:30 · 641 阅读 · 1 评论 -
HBase2.0的修复工具HBCK2
1. 背景在了解HBCK2之前,建议先了解一下啥是HBCK。HBCK是HBase1.x中的命令,到了HBase2.x中,HBCK命令不适用,且它的写功能(-fix)已删除,它虽然还可以报告HBase2.x集群的状态,但是由于它不了解HBase2.x集群内部的工作原理,因此其评估将不准确。因此,如果你正在使用HBase2.x,那么对HBCK2应该需要了解一些,即使你不经常用到。2. 获取HBCK2HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,原创 2021-07-17 11:53:28 · 1676 阅读 · 5 评论