开启一个新时代: Apache HBase 1.0 发布
创始人
2024-03-01 14:54:47
0

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!

相关内容

不能使用反应式方法将文档保...
要将文档保存到Couchbase,不能使用反应式方法,而是需要使用...
2024-12-27 06:32:12
布隆过滤器原理hbase
布隆过滤器是一种快速判断一个元素是否存在于集合中的数据结构,它能够...
2024-12-26 18:01:50
BlazorWebAsse...
可以通过使用在启动Blazor WebAssembly应用程序时在...
2024-12-22 01:00:30
BlazorWebAsse...
解决方法是在启动类中手动将pathbase设置为"/",即可解决该...
2024-12-22 00:31:19
避免Zookeeper客户...
以下是一个示例代码,演示如何使用Java编写一个避免Zookeep...
2024-12-17 20:01:36
比较和交换:如何将CAS元...
要将CAS(Compare and Swap)元数据字段映射到Co...
2024-12-13 16:30:28

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...