HBase性能调优(1.2官方文档)

本文详细介绍了HBase性能调优的各种策略,包括操作系统、网络、Java、HBase配置参数、客户端API、写入和读取操作等方面的优化。强调了内存、CPU、GC垃圾回收器、HBase配置选项如内存使用限制、Blockcache预取、写入优化策略和读取效率提升等方面的重要性。此外,还提到了避免热点region、使用Bloom过滤器和对冲读取等技巧,以提高整体系统性能。
摘要由CSDN通过智能技术生成

HBase性能调优

一. 操作系统:

1.内存:

内存尽可能的大,不要饿着HBase。

2.64-bit

使用64位的操作系统。

3.Swapping

当心交换。swappiness设置为0。

 

Linux 移动那些一段时间没有被访问的内存页到 swap 空间,即使它由足够可用的内存。这叫做 swap out。换一句话说,从 swap 空间读 swapped out 的数据到内存中叫做 swap in。Swapping 在大多数情形是有必要的,但是因为 Java Virtual Machine(JVM) 在 swapping 下不是表现的很好,如果 swapped 了,HBase 运行可能会遇到问题。ZooKeeper 的 session 过期或许是 被 swap 引入的典型问题。

 

vm.swappiness 设置成 0,这将使得内核避免把进程尽可能的从物理内存中交换出去。这对 HBase 是非常有用的,因为 HBase 的进程消费大量的内存,一个高的 vm.swappiness 值将使得 HBase 交换很多并遭遇非常慢的垃圾回收。随着 ZooKeeper session 超时,这可能会导致 RegionServer 进程被杀死。

 

如何修改swappiness:

查看

cat /proc/sys/vm/swappiness

修改

sysctlvm.swappiness=10

永久修改

echo"vm.swappiness = 10" >> /etc/sysctl.conf
 

4.CPU

确保您已经设置了您的Hadoop使用本地的、硬件的校验和。(core-site.xml io.native.lib.available=true

 

二.网络:

三.java

1.GC垃圾回收器

在HBase中有两种stop-the-world GC的情况: CMS(并发GC)失效模式和老年代碎片问题。

第一个问题:

       启动CMS前,将-XX:CMSInitiatingOccupancyFraction参数设置为低于默认值(92),以60或70%启动(降低阈值越低,完成的GCing越多,使用的CPU越多)

第二个问题:

本地memstore分配缓冲区MSLAB --代价是更加浪费堆空间

缓解由于memstore的扰动(不断创建和释放内存空间)造成region server 内存碎片问题。

原理:只允许从堆中分配相同的对象。一旦这些对象分配并且最终被回收,他们将在堆中留下固定大小的孔洞。之后调用相同大小的新对象将会重新使用这些孔洞:这样就不会产生提升错误,因此就不需要应用程序停止压缩回收了。默认在0.92版中被启用,0.90版本未启用,可以修改参数:hbase.hregion.memstore.mslab.enabled来覆盖

       要注意的是,当启用这个属性时,每个MemStore实例将至少占用一个内存实例。如果你在大量列族中都有成千上万个region,可能会浪费很大的堆空间,严重时导致OOME。在这种情况下要禁用MSLAB或者降低它的内存使用量,或者减少region server 中的region数量。

       如果写压力过大,减少年轻代GC的配置。

       在hbase-env.sh 中配置GC-xx:PretenureSizeThreshold小于hbase.hregion.memstore.mslab.chunksize(默认2M的大小。

 

四.HBase 配置参数

1. hbase.regionserver.handler.count

hbase.regionserver.handler.count 该属性定义了响应外部用户访问数据表请求的线程数。默认值10,较大的写入和使用大缓存的扫描,设得小;而当单次请求开销较小时(如get,较小的put,increment和delete等操作)可以将工作线程数设得高一些。

 

2. hfile.block.cache.size

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值