一、前言

在生产环境使用HBase过程中,随着数据量的不断增加,查询HBase数据变得越来越慢,对于业务来说是不可用的,需要对读性能进行优化

二、问题定位

从hbase监控指标来看,发现FullGC次数频繁,大家都知道FullGC对系统的影响很大,会使系统资源都耗在GC上,其它性能就会影响,另一个异常是Compact队列一直在阻塞,需要compact的文件过多又不无法及时得到compact,这个就导致小文件越来越多得不到合并影响读性能。

三、问题解决

初步定位到原因之后,考虑从以下几个方面进行优化

1. 增加regionserver堆栈内存大小,此优化主要考虑到FullGC次数过多,尽量避免Full GC的发生

   2.  观察到集群读缓存率过低,很多时候读的数据都不在缓存中,blockcache得不到利用,所以考虑读写cahce比例调整,减小读增大memstore内存,提高写性能,避免写请求被阻塞

3. 调整small compact线程数,原来是设置了1 个small compact,为提高compact速率,线程调整为3

4. 调整表region数,原来是对于所有的表预分配了1000个region,导致一些数据量小的表region数过多,优化后针对表的数据量调整了region的数量

5. 调整region hfile数量 ,  针对region hfile文件数过多的表,进行手动major_compact, 以提高读性能

6. 隔离表, 此步主要考虑到compact队列阻塞严重,所以考虑将一些表用几台新机器进行隔离, 最本质的其实还是降低单region的hfile数量,降低之后在定位到数据在哪个region之后,可以大幅减少扫描hfile的次数,具体方法如下,

a 确认要隔离的表

b 确认隔离的机器列表

c  创建group

add_rsgroups 'test_tables'

d 将机器列表move到新建组别
move_rsgroup_servers 'test_tables',['1.1.1.1:60020','1.1.1.2:60020','1.1.1.3:60020'] c 查看上面操作是否成功
get_rsgrup 'test_tables' d 将需要隔离的表move到group move_rsgroup_tables 'test_tables',['table1','table2']

进行隔离后,发现compact阻塞严重的表已经下降了,最直观的表现是读性能从原来的10几秒优化到200ms以内,读性能得到质的变化,最主要的优化是降低了每个region的hfile数量,提高了定位数据区间的效率

HBase入门笔记--读性能优化的更多相关文章

  1. HBase最佳实践-读性能优化策略

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...

  2. Android App性能优化笔记之一:性能优化是什么及为什么?

    By Long Luo   周星驰的电影<功夫>里面借火云邪神之口说出了一句至理名言:“天下武功,唯快不破”. 在移动互联网时代,同样如此,留给一个公司的窗口往往只有很短的时间,如何把握住 ...

  3. HBase设计与开发性能优化(转)

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...

  4. 从零开始入门 K8s | etcd 性能优化实践

    作者 | 陈星宇(宇慕)  阿里云基础技术中台技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 17 讲. 导读:etcd 是容器云平台用于存储关键元信息的组件.阿 ...

  5. HBase 入门笔记-数据落地篇

    一.前言 关于数据落地方面,HBase官网也有相关介绍.本文主要介绍一下实际工作中涉及的数据存储方面的一些经验和技巧,主要涉及表rowkey设计.数据落地方案 二.表设计 相对于MySQL等关系型数据 ...

  6. IOS学习笔记45--UITableView性能优化

    说实话,面试的时候已经被问到几次这个问题,然后就搜索了一下,看到了这篇优化文章,感觉不错,转来日后作为一种UITableView优化的方法. 使用不透明视图.      不透明的视图可以极大地提高渲染 ...

  7. HBase 入门笔记-安装篇

    一.前言 接触HBase已近半年,从一无所知到问题的解决,在数据落地方面也有了一定的了解,在此记录这半年来碰到的一些问题和对一些数据落地方面的见解,本篇主要介绍一下hbase安装方面的信息 二.安装环 ...

  8. Android学习笔记之性能优化SparseArray

    PS:终于考完试了.来一发.微机原理充满了危机.不过好在数据库89分,还是非常欣慰的. 学习内容: 1.Android中SparseArray的使用..   昨天研究完横向二级菜单,发现其中使用了Sp ...

  9. [笔记] SQL性能优化 - 避免使用 IN 和 NOT IN

    WHY? IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1.效率低 可以参看我之前遇到的一个例子([小问题笔记(九)] SQL语句Not IN 效率低,用 NOT EXISTS试试 ...

随机推荐

  1. UIImage加载图片的方式以及Images.xcassets对于加载方法的影响

    UIImage加载图片的方式以及Images.xcassets对于加载方法的影响 图片缓存 根据是否将创建好的对象缓存入系统内存,有两类创建UIImage对象的方法可选: 缓存:+ imageName ...

  2. CSS之display样式

    一.前言 行内标签:类似span,无法设置高度,宽度,padding,margin 块级标签:类似div,可以设置高度,宽度,padding,margin 默认情况下是这个样子的,但是可以通过disp ...

  3. 博世传感器调试笔记(一)----加速度传感器BMA253

    公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件.涉及到的器件有7,8款,类型包括重力加速度.地磁.陀螺仪.温度.湿度.大气压力传感器等.在调试 ...

  4. 蓝桥杯 方格填数 DFS 全排列 next_permutation用法

    如下的10个格子(参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数.注意:你提交的应该是一个 ...

  5. 解析XML文件的几种常见操作方法:DOM/SAX/DOM4j

    <?xml version="1.0" encoding="utf-8"?> <root> <class name="c ...

  6. 如何创建一个https的站点(超简单) 以及 IIS7.5绑定Https域名

    1.申请免费1年的ssl证书(传送门:https://common-buy.aliyun.com/?spm=5176.2020520163.cas.29.N0xOPM&commodityCod ...

  7. Spring容器事件、自定义事件

    Spring容器内置事件,如容器的启动.停止.关闭.销毁等事件 <bean name="contextStartedHandler" class="com.nuts ...

  8. Spring MVC表单防重复提交

    利用Spring MVC的过滤器及token传递验证来实现表单防重复提交. 创建注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RU ...

  9. ASP.NET配置文件Web.config 详细解释

    一.认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式), ...

  10. jQuery制作鼠标经过显示图片大图,生成图片tips效果

    一般tips都是文字,这个可以支持图片,很漂亮: 演示   <script type="text/javascript"> // Load this script on ...