HBase Capacity Planning

1.  Physical data size
	Ganglia监控disk存储状态
2.  JVM GC Lmitations
	考虑到GC问题,RS的max heap size一般推荐设置为16GB左右
3.  Region count & size
        估算region数量的Formula:
              (RS memory)*(total memstore fraction)/((memstore size)*(# column families))
	比如: 一个RS 有16GB Mem, memstore fraction 0.4 , memstore max size 128MB
        16GB * 0.4/(128MB)  约等于 51 regions。 对于存储了多个表,column families值为所有families个数的总和。
	但是,一般情况下,memstore的存储空间是没有打满的,所以一个RS对regions的容量可以是公式计算值的2-3倍.

	在hbase官方book-9.7.1.1节,一个RS最好维护大约100个regions,理由是:
	1>    每个memstore 的MSLAB需要2MB。假设一个RS有1000个regions,每个region有两
       	      个CF, MSLAB就要占用4GB左右的Mem, 这些Mem没有存任何数据. 
	2>    一个RS如果有太多的regions,比如1000 那么总的memstore size很容易超过设置的阈值,这样会造成大量tiny  flush,即形成很多size 很小的storefiles,导致大量的compactions发生。
	3>    RS上regions数量太多,那么RS宕机恢复时,master reassgin them需要很长的时间.
	4>     一个RS上有太多的regions,相应的index也会增多,占用的Mem也会增加。
	当然,数据很多,但是region数量很少也不能达到很好读写效果。

	Region max size:
	Region max size受限于compact,因为size 太大,major compact将会占用过多的时间,影响读写性能。推荐的max size: 10GB-20GB。
4.     Total data size per RS
	根据上面的数据,一个RS能够存储的数据size 大约为 (10GB~20GB) * 100  即1TB到2TB左右。 当然,考虑到blockcache size最大设置10GB时,cache data才占总数据的1%, 为了有更好的读性能, 那么可是适当减少存储的数据。
	
5.   compact & split    
	HBase 优化必须考虑的两点:
	split policy: 

 
 
  • ConstantSizeRegionSplitPolicy
当region size达到hbase.hregion.max.filesize时,region split为两个。推荐:hbase.hregion.max.filesize = 10~20GB,减少split对读写的影响。
  • IncreasingToUpperBoundRegionSplitPolicy
hbase 默认配置,region split on region size arrive at Min (R^2 * “hbase.hregion.memstore.flush.size”, “hbase.hregion.max.filesize”), R is current num of regions. 比如现在,max.filesize is 10GB, flush.size is 128MB. Split 将会发生在 region size 为 : min( 1^2*128MB , 10GB ) = 128MB min( 2^2*128MB , 10GB ) = 512MB min( 3^2*128MB , 10GB ) = 1152MB min( 4^2*128MB , 10GB ) = 2GB min( 5^2*128MB , 10GB ) = 3.2GB …… 不推荐使用。
  • KeyPrefixRegionSplitPolicy
基本理解是有相同prefix 的rowkey split时 放在一个region里。 Compact: minor compact: 根据算法选取需要compact 的storefiles major compact: 将region store里的storefiles 合并为一个文件 推荐配置:开启minor compact, 关闭major compact 设为定时执行 6. Read/Write throughput
      need ycsb test, see later...
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值