hbase优化简介

关于预分区:

http://www.csdn123.com/html/topnews201408/3/2603.htm   建议看看

1. 1.设置合理的memstore大小

数据写入到WAL和memstore中。
  memstore中的数据flush到HDFS中。
  数据存放在内存中,一般存放在jvm中的新生代、老生代区域。
  memstore一般设置大小为128MB。
  设置合理的memstore的值,可以提高数据装载到HBase中的速度。
 
2.对列簇启用压缩
  比如GZIP、LZO、Zippy、Snappy   看下面表 默认下COMPRESSION => 'NONE' 都是非压缩方式

 压缩的好处就是 在 hbase ----> hdfs IO操作时候 速度回更快
 

hbase(main):007:0> describe 'stu'
Table stu is ENABLED                                                            
COLUMN FAMILIES DESCRIPTION                                                     
{NAME => 'base', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATIO
N_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL
 => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY =>
 'false', BLOCKCACHE => 'true'}                                                 
{NAME => 'more', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATIO
N_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL
 => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY =>
 'false', BLOCKCACHE => 'true'}  

 
3.对region进行预拆分   一定程度实现负载均衡
    在hbase执行如下命令,创建表aaa 列簇 cf 使用 HexStringSplitter 方式切分region,切分为10分region

    这样数据在入到hbase的时候,就会均衡存储
    bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 10 aaa -f cf HexStringSplitter
 
4.当数据进行匀速的批量装载的时候,当region达到指定的阈值时,就会进行分裂,形成分裂风暴。

  在分裂风暴下是不能对外提供访问服务,因此需要人工手工分裂。

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2192137