HBase 2.0 新特性
转载来源
1 | 作者:GOD_WAR |
前言
HBase 2.0 做了那么多的改动,总有一些新特性值得我们去关注。这里做一个简单的介绍
所有 HBase 2.0 相关的 jira,subtask
HBase2.0.0版本自2018年4月30日正式发布起, 到现在已经过了接近15个月(2019年07月)。现在的状态是HBase2.0.x已经EOL了,后面不会再发新的Release版本了,HBase2.1已经发布到HBase2.1.6了,个人预计将来也不会维护太长的时间。今后的HBase2.x的稳定版本将会是HBase2.2.x和HBase2.3.x,尤其是HBase2.2.x,可能成为未来真正意义上经过大厂线上严苛考验的版本。
– 转自OpenInx 《社区HBase未来值得做的一些工作》
新特性
A new Region assignment manager
HBASE-14350、HBASE-14614
AssignmentManager V2(“AMv2”)基于Procedure V2实现,能够更快速的分配Region,维护的region状态机存储不再依赖于ZooKeeper,能够更好的应对Region长时间RIT问题。
Offheaping of Read/Write
HBASE-11425、HBASE-15179
减少对Heap内存的使用,改用Offheap区的内存,有效减少GC压力
In-Memory Compaction
HBASE-17343
重新设计了CompactingMemStore 替代 DefaultMemStore,CompactingMemStore中的数据达到一定大小以后,不是直接Flush成HDFS中的HFile文件,而是先Flush到内存中的一个不可改写的Segment,这样,内存中的多个Segments可以预先合并,当达到一定的大小以后,才Flush成HDFS中的HFile文件,这样做的好处是希望有效降低Compaction所带来的写IO放大问题。
NettyRpcServer
HBASE-17263
其实并不新鲜,早在1.x 淘宝就有使用,现在 HBase2.0 开始默认使用NettyRpcServer
使用Netty替代HBase原生的RPC server,大大提升了HBase RPC的吞吐能力,降低了延迟
Async RPC Client
HBASE-16833、HBASE-15921
HBase2.0 Client不在是原来同步等待,而是利用异步RPC机制,大大提高Client端请求并发度,有效提高资源利用率,扩大吞吐。
RegionServer Group
HBASE-6721
在HBase 2.0中我们可以将RegionServer划分到多个逻辑Group中,这样可以提供多租户的能力。
Support for MOB
HBASE-11339
MOB特性使得HBase支持存储小于10MB 的中等媒体对象数据,这些小对象文件采用独立的HFile文件进行存储,相比原来直接存储大对象插入hbase,其读写效率更高;Mob数据存储还是以hfile格式存储,兼容HBase现有特性,如snapshot、bulkload、replication等。MOB数据文件有独立的compaction和expire clean机制,稳定性更可控。
Support CF-level Storage Policy
HBASE-14061
支持通过”hbase.hstore.block.storage.policy”配置来设置HFile的存储策略,并且还支持CF级设置以覆盖配置文件中的设置。目前支持的存储策略包括ALL_SSD/ONE_SSD/HOT/WARM/COLD
参考链接