hbase读写优化小记

标签: hbase 优化 | 发表时间:2014-08-29 00:32 | 作者:u011750989
出处:http://blog.csdn.net
客户端编程时我们可以注意的:
1、批量读
当我们使用scan顺序读的时候,默认是一个RPC请求返回一条数据,我们可以设置一次返回多条缓存在客户端缓存,比如sn.setCaching(1000);
2、批量写
数据在客户端累计到一定量再发次请求,批量写
table.setWriteBufferSize(1 * 1024 * 1024); 
table.setAutoFlush(false); 
    
3、使用filter
使用过滤器,在服务器端就做好过滤再返回数据到客户端,减少网络流量


服务端需要注意到的地方:
1、rowkey的设计尽量短小,尽量避免顺序递增
2、指定列族参数,比如大多是scan顺序读,可将block设大些,默认块大小是64K,可以设为128,使用bloomfilter提高随机读性能规避一些hfile的读
3、region热点
开始会不断往一个region写,可以预划分region
如果rowkey不可避免会造成热点,在rowkey加哈希前缀 对region server数量取余,这种情况scan读的时候会比较麻烦,需要客户端计算好各个子范围开启多个线程分别去范围读
4、memstore提高写性能,blockcache提高读性能,看需求调整,调大一方调小一方,一般加起来占60至70%
5、关闭major compact,手工弄
6、频繁split我们可以改为手工split
比如一开始都是只往一个region里写,只有当region到一定数量才可能负载比较均衡(写请求),这里又出现了个问题,假设各个region大小非常均匀,他们有可能在同一时间split,影响效率,我们可以关闭split,手工split某些region

作者:u011750989 发表于2014-8-28 16:32:56 原文链接
阅读:85 评论:0 查看评论

相关 [hbase 优化] 推荐:

Hbase 性能优化

- - CSDN博客云计算推荐文章
因 官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果. 所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 默认值:3分钟(180000ms). 说明:RegionServer与Zookeeper间的连接超时时间.

hbase性能优化

- - CSDN博客推荐文章
  当你调用create方法时将会加载两个配置文件:hbase-default.xml and hbase-site.xml,利用的是当前的java类路径, 代码中configuration设置的这些配置将会覆盖hbase-default.xml和hbase-site.xml中相同的配置,如果两个配置文件都存在并且都设置好了相应参上面的属性下面的属性即可.

HBase性能优化

- - zzm
本文主要介绍软件层面的性能调优. 硬盘推荐SSD,一般SATA即可. 可以安装Ganglia等工具,检查各节点的各硬件的运作状态:CPU,Memo,网络等等. 入门级的调优可以从调整参数开始.  设置buffer的容量,例子中设置了6MB的buffer容量. * 必须禁止auto flush. * 6MB是经验值,可以上下微调以适应不同的写场景.

hbase读写优化小记

- - CSDN博客云计算推荐文章
客户端编程时我们可以注意的:. 当我们使用scan顺序读的时候,默认是一个RPC请求返回一条数据,我们可以设置一次返回多条缓存在客户端缓存,比如sn.setCaching(1000);. 数据在客户端累计到一定量再发次请求,批量写. 使用过滤器,在服务器端就做好过滤再返回数据到客户端,减少网络流量.

Hbase性能优化之配置

- - 博客园_首页
减少zk超时时间(建议1分钟). Rs与zk的timeout默认为3分钟,由zookeeper.session.timeout property决定. 也就是说,如果一个rs挂了,那么master需要3分钟之后才能对其进行重启和恢复. 然而,你调低之前应该先确保JVM的配置合理,保证不会引发较长的gc,JVM配置之后会给出,也可以只这样,只要你超时时间可以忍受gc停顿即可.

HBase性能优化方法总结

- - IT技术博客大学习
标签:   HBase.     本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法. 有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考: 淘宝Ken Wu同学的博客.     默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分.

Hbase性能优化 - 季石磊

- - 博客园_stanley's blog
以下为使用hbase一段时间的几个思考,由于在内存充足的情况下hbase能提供比较满意的读性能,因此写性能是思考的重点.     无论是官方还是很多blog都提倡为了提高hbase的写入速度而在应用代码中设置autoflush=false,然后在在线应用中应该谨慎进行该设置.     a autoflush=false的原理是当客户端提交delete或put请求时,将该请求在客户端缓存,直到数据超过2M(hbase.client.write.buffer决定)或用户执行了hbase.flushcommits()时才向regionserver提交请求.

HBase 原理、设计与优化实践

- - leejun_2005的个人页面
HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取海量数据、实现数据分布式存储提供可靠的方案. 从功能上来讲,HBase不折不扣是一个数据库,与我们熟悉的Oracle、MySQL、MSSQL等一样,对外提供数据的存储和读取服务.

HBase最佳实践-写性能优化策略 – 有态度的HBase/Spark/BigData

- -
上一篇文章主要介绍了HBase读性能优化的基本套路,本篇文章来说道说道如何诊断HBase写数据的异常问题以及优化写性能. 和读相比,HBase写数据流程倒是显得很简单:数据先顺序写入HLog,再写入对应的缓存Memstore,当Memstore中数据大小达到一定阈值(128M)之后,系统会异步将Memstore中数据flush到HDFS形成小文件.