0.94版本之前
一个Region里面最大的file大小,如果超过就一分为二
hbase.hregion.max.filesize默认是10G
0.94版本之后
当一个Region中某个Store下面所有的StoreFile的总大小超过Min(R^2 * "hbase.hregion.memstore.flush.size" , "hbase.hregion.max.filesize"),该region就会进行拆分,其中R为当前RegionServer中属于该Table的个数,就是当前这个表的Region数量
hbase.hregion.memstore.flush.size会导致小文件问题,比如两个列族的数据增长不均匀,但是这个参数是针对全局的,所以都会进行切分,那么数据比较稀疏的这个就会产生小文件的问题,hbase官方也是建议尽量不要多个列族,如果是多个列族的话要保证多个列族的数据增长保持同步
预分区: 建表的时候要预分区,规划好我要建多少个分区,10000-20000,20000-30000,30000-40000