行式存储、列式存储
OLTP (on-line transaction processing) 联机事务处理
是传统关系型数据库的主要体现,用来执行一些基本的、日常的事务处理,比如数据库记录的增、删、改、查等...
OLAP (On-Line Analytical Processing) 联机分析处理
是分布式数据库的主要体现,它对实时性要求不高,但处理的数据量大,通常应用于复杂的动态报表系统上...
row key 优化
长度要段、数据热点、加盐、反转

列簇 优化
不要在一张表里定义太多的column family。目前Hbase并不能很好的处理超过2~3个column family的表。因为某个column family在flush的时候,它邻近的column family也会因关联效应被触发flush,最终导致系统产生更多的I/O。感兴趣的同学可以对自己的HBase集群进行实际测试,从得到的测试结果数据验证一下。
Region规划
对于Region的大小,HBase官方文档推荐单个在10G-30G之间,单台RegionServer的数量控制在20-200之间。
过大的Region
优点:迁移速度快、减少总RPC请求、减少Flush
缺点:compaction的时候资源消耗非常大、可能会有数据分散不均衡的问题
过小的Region
优点:集群负载平衡、HFile比较少compaction影响小
缺点:迁移或者balance效率低、频繁flush导致频繁的compaction、维护开销大
默认情况下单个Region是256MB.你可以设置为1G。有些人使用更大的,4G甚至更多。可以调整hbase-site.xml中的 hbase.hregion.max.filesize属性.
假设一个RS有16GB内存,那么16384*0.4/128m 等于51个活跃的region。
((RS Xmx) * hbase.regionserver.global.memstore.size) / (hbase.hregion.memstore.flush.size * (# column families))
4 垃圾回收器
尽量使用G1 不使用CMS