HBase 2.0版本正式发布

1.HBase 2.0版本正式发布

关于HBase版本定义

HBase从1.0.0版本开始,在版本定义上正式遵循了Semantic Versioning规范:

一个版本号,由三部分组成: MAJOR.MINOR.PATCH,关于这三部分数字的变更,定义如下:

  • MAJOR版本号变更:意味着可能带来不兼容的API变更。

  • MINOR版本号变更:主要是增加了一些功能特性,但API接口却是向前兼容的。

  • PATCH版本号变更:主要是针对Bug修复。

按照该定义,我们举例说明如下:

  • 从1.0.0到2.0.0版本,可能带来一些不兼容的API变更。

  • 从1.0.0到1.1.0版本,意味着合入了一些新的Feature,但API接口却是兼容的。

  • 从1.0.0版本到1.0.1版本,只是在1.0.0版本基础之上,做了一些Bug修复,但没有合入新的Feature。

关于2.0版本所包含的一些关键特性,在以前的很多文章中都已经揭示过,这里再简单阐述一下:

  1. New region assignment manager

    基于Procedure V2的AssignmentManager V2,旨在能够更快速的分配Region,状态机的存储不再依赖于ZooKeeper,能够更好的应对Region长时间RIT问题。

  2. In-memory flush and compaction

    MemStore中的数据达到一定大小以后,不是直接Flush成HDFS中的HFile文件,而是先Flush到内存中的一个不可改写的Segment,这样,内存中的多个Segments可以预先合并,当达到一定的大小以后,才Flush成HDFS中的HFile文件,这样做的好处是希望有效降低Compaction所带来的写IO放大问题。

    在《一条数据的HBase之旅,简明HBase入门教程-Flush与Compaction》一文中,详细介绍了该特性。

  3. Off-heap read and write

    减少对Heap内存的使用,改用Offheap区的内存,有效减少GC压力。

  4. Async RPC Client

    利用异步RPC机制,提升客户请求并发度,提升Client端线程资源利用率。

  5. RegionServer Group

    将RegionServer划分成多个逻辑Group,提供多租户能力

  6. MOB

    让HBase更好的支持数KB甚至数MB级别的小对象存储,这些小对象采用独立的HFile文件进行存储,而且不参与普通的Compaction,这样不会因为小对象数据使得Compaction的写IO放大问题进一步恶化。

与1.x版本的兼容性

1.x版本的Client可以访问2.0版本的集群,进行正常的数据读写操作。但从1.x版本不停服务的情况下滚动升级到2.0版本是没法做到的,1.x版本的coprocessor/Endpoint不做改动的情况下也无法在2.0版本中正常使用。

对比HBaseCon Asia 2017大会上Stack的演讲内容,似乎有了一些出入,这说明2.0版本为了发布还是不得不做了一些割舍。

http://www.nosqlnotes.com/techtrends/hbase-2-0-release/

猜你喜欢

转载自blog.csdn.net/JHON07/article/details/90440706