HBase 有两种版本控制方案,分别是:pre-1.0 和 post-1.0。在本节内容中将作出详细的说明。
HBase post-1.0
从 1.0.0 版本开始,HBase 正在致力于 Semantic Versioning 的发布版本。综上所述:
对于给定的版本号 MAJOR.MINOR.PATCH,增加如下内容:
- MAJOR 版本,当你进行不兼容的 API 更改时
- MINOR 版本,当您以向后兼容的方式添加功能时
- PATCH 版本,当您进行向后兼容的错误修复时
- 预发布和构建元数据的其他标签可作为MAJOR.MINOR.PATCH格式的扩展。
兼容性维度:
除了通常的 API 版本考虑之外,HBase 还有其他需要考虑的兼容性维度。
Client-Server 线协议兼容性:
- 允许不同步更新客户端和服务器。
- 我们只能允许先升级服务器。也就是说,服务器将向后兼容旧客户端,这样新的 API 就可以使用。
- 示例:用户应该能够使用旧客户端连接到升级的群集。
Server-Server 协议兼容性:
- 不同版本的服务器可以共存于同一个群集中。
- 服务器之间的有线协议是兼容的。
- 分布式任务的工作人员(如复制和日志拆分)可以共存于同一个群集中。
- 相关协议(如使用ZK进行协调)也不会改变。
- 示例:用户可以执行滚动升级。
文件格式兼容性:
- 支持文件格式向前和向后兼容
- 示例:文件、ZK