HBase Capacity Planning

来源:互联网 发布:网络歌曲改编歌词 编辑:程序博客网 时间:2024/06/07 02:38
1.  Physical data sizeGanglia监控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 ) = 128MBmin( 2^2*128MB , 10GB ) = 512MBmin( 3^2*128MB , 10GB ) = 1152MBmin( 4^2*128MB , 10GB ) = 2GBmin( 5^2*128MB , 10GB ) = 3.2GB……不推荐使用。
  • KeyPrefixRegionSplitPolicy
基本理解是有相同prefix 的rowkey split时 放在一个region里。Compact:minor compact: 根据算法选取需要compact 的storefilesmajor compact: 将region store里的storefiles 合并为一个文件推荐配置:开启minor compact, 关闭major compact 设为定时执行6. Read/Write throughput
      need ycsb test, see later...
       
0 0
原创粉丝点击