开启一个新时代: Apache HBase 1.0 发布

2015-02-26 17:07


HBase社区的过去、现在及未来

Apache HBase社区发布了Apache HBase 1.0.0。它花费了七年时间在Apache HBase项目领域取得了里程碑式的发展,这次发布提供了一些令人兴奋的特性和并未牺牲稳定性的新API,无论在线还是在硬盘上都与HBase 0.98.x兼容。

让我们回顾Apache HBase 项目的过去、纵观它的现在、展望一下未来。

版本啊版本

在列举这个版本的详细特性之前,让我们来浏览一下过去的版本历史。HBase 始于 Apache Hadoop 一个子项目, 大约在 2007 随同 Hadoop 一起发布。三年后,HBase 成为了一个独立的 Apache 顶级项目。由于 HBase 依赖于 HDFS,所以社区让 HBase 与 Hadoop 的主版本号保持一致。例如,HBase 0.19.x 可以和 Hadoop 0.19.x 协同工作,等等。

然而,HBase 社区希望可以让一个 HBase 版本可以与多个 Hadoop 版本协同工作—不仅仅是其所匹配的主版本号。这样一来,一个新的命名方案就诞生了,新版本将以接近1.0的主版本0.90开始,就像上面时间线中展示的一样。我们也运用了一种“偶数-奇数”版本的惯例,也就是奇数版本是“开发者预览”,偶数版本是可以用来发布的“稳定版”。稳定发布系列包括0.90、0.92、0.94、0.96和0.98(详见HBase版本)。

在0.98之后,我们把主干版本命名为0.99-SNAPSHOT,但是我们官方已经用完了所有的数字!欠考虑了,去年 HBase 社区一致认可这个项目已经足够成熟稳定,可以作为1.0.0版本了。在三个0.99.x“开发者预览”系列版本和六个 Apache HBase 1.0.0备选版本之后,HBase 1.0.0现在发布了!看上面的图表,它是由 Lars George 发布的时间表,显示了每个版本的支持周期,及任何开发者预览版本(例如0.99->1.0.0),如果有的话。 

HBase 1.0.0,开启了一个新时代

1.0.0版本有三个目标

1)为将来的1.x系列版本奠定稳定基础

2)稳定运行的 HBase 集群及客户端

3)让版本和兼容性方面更加明确

包括之前的0.99.x系列版本,1.0.0解决了超过1500个 JIRA 跟踪的问题。其中一些主要的修改包括: 

API 整理和改变

HBase 的客户级 API 已经发展多年了。为了简化语义和支持,让它可以扩展并且在将来更容易使用,我们回顾了1.0之前的API。为此,1.0.0引进了新的 API,并且废弃了一些常用的客户端 API(HTableInterface, HTable 和 HBaseAdmin)

我们建议您更新您的应用程序来使用新风格的 API,因为这些废弃的 API 在将来2.x系列版本之后被删除。进一步的指导,请访问:http://www.slideshare.net/xefyr/apache-hbase-10-releasehttp://s.apache.org/hbase-1.0-api

所有的客户端 API 都标识为 InterfaceAudience.Public 类。以表明其是 HBase 官方的“客户端 API”(更多 Audience 的说明详见 HBase Refguide 中的“11.1.1HBase API Surfase”)。接下来,所有的1.x 版本的 API 都会与 public 客户端的类相兼容。 

使用时间轴协调区域副本的可读性

作为第一阶段的一部分,这个发行版包括了一个实验性的“使用时间轴协调区域副本的可读性”特点。也就是说,一个区域可以以只读模式放在多个区域服务器上。该区域副本之一将会是主服务器,支持写入,其它副本将共享与之相同的数据。对复制副本的读请求可以为后备的 RPC 请求来提供时间连续的高可用性。查看JIRA HBASE-10070 了解更多详情。

在线配置修改及来自0.89-fb分支的其它前向移植

Apache HBase 的 0.89-fb 分支是 Facebook 发布他们的修改的地方。 HBASE-12147 JIRA 的前向移植补丁支持重载服务器配置的一个子集,而无需重启区域服务器。

除了上面所列举的,还有成百上千的改进和性能提升(提升的WAL pipeline,使用 disruptor, 多 WAL, 更多的off-heap 等等)和漏洞修复以及其它好的东西,太多了就不列举了。详细介绍请查看官方的发布日志。发布日志和白皮书也包含了二进制、源代码和协议的兼容性说明、所支持的 Hadoop 和 Java 版本,从0.94、0.96和0.98版本升级的说明以及其它重要详情。

HBase 1.0.0版本也开始使用“语义版本号”发布 HBase。换言之,将来 HBase 版本将会使用显示兼容语义的“主版本.次版本.补丁”版本号。HBas e的白皮书包含了所有兼容性方面的内容和不同版本之间预计的内容。

接下来

我们将 HBase 1.0.0标记为 HBase 的下一个稳定版本,这就意味着所有的新用户都应该开始使用这个版本。然而,作为一个数据库,我们明白,切换到更新的版本可能会花费一些时间。我们将会继续维护和使用0.98.x版本,直到用户社区准备结束它的生命。1.0.x、1.1.0、1.2.0等发行版预计将发布其相应的分支,而2.0.0和其它主要的版本也将如时到达。

两段读复制、按列族刷新、procedure v2、SSD for WAL 或列族数据等等特性也即将到来。

总结

最后,HBase 1.0.0发行版已经走过了一段漫长的道路,大量的核心成员、提交者、贡献者的辛勤工作带来了诸多贡献,我们想对所有的用户和 HBase 贡献者致以衷心的感谢!

Keep HBase’ing!