HBASE知识点汇总

HBASE知识点汇总

行式存储、列式存储

OLTP  (on-line transaction processing) 联机事务处理

是传统关系型数据库的主要体现,用来执行一些基本的、日常的事务处理,比如数据库记录的增、删、改、查等...

OLAP (On-Line Analytical Processing) 联机分析处理 

是分布式数据库的主要体现,它对实时性要求不高,但处理的数据量大,通常应用于复杂的动态报表系统上...HBASE知识点汇总

HBASE知识点汇总

 

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