本文为您介绍HBase版本的兼容性、选择建议以及发布记录。
EMR HBase版本
EMR HBase随EMR版本一起发布,EMR主版本分为3.x系列和5.x系列,其中EMR 3.x系列版本对应Hadoop 2.x版本和HBase 1.x版本,EMR 5.x系列版本对应Hadoop 3.x版本和HBase 2.x版本。
以下是EMR已发布的EMR版本和对应的Hadoop、HBase、Phoenix版本,以及每个版本支持的新特性。
EMR 5.x系列
| EMR版本 | Hadoop版本 | HBase版本 | Phoenix版本 | 新特性 | 
| EMR 5.8.0 | 3.2.1 | 2.3.4 | 5.1.2 | 支持存算分离架构 | 
| EMR 5.9.0 | 3.2.1 | 2.4.9 | 5.1.2 | 
 | 
| EMR 5.10.0 | 3.2.1 | 2.4.9 | 5.1.2 | 
 | 
| EMR-5.11.0 | 3.2.1 | 2.4.9 | 5.1.2 | 
 | 
| EMR-5.11.1 | 3.2.1 | 2.4.9 | 5.1.2 | 无 | 
| EMR-5.12.0 | 3.2.1 | 2.4.9 | 5.1.2 | 
 | 
| EMR-5.12.2 | 3.2.1 | 2.4.9 | 5.1.2 | |
| EMR-5.13.1 | 3.2.1 | 2.4.9 | 5.1.2 | 无 | 
| EMR-5.14.2 | 3.2.1 | 2.4.9 | 5.1.2 | 无 | 
| EMR-5.15.1 | 3.2.1 | 2.4.9 | 5.1.2 | 在配置中增加配置项,您可以根据自己的需求选择HBase Thrift Server的版本,包括v1和v2。 | 
EMR 3.x系列
| EMR版本 | Hadoop版本 | HBase版本 | Phoenix版本 | 新特性 | 
| EMR 3.42.0 | 2.8.5 | 1.4.9 | 4.14.1 | 支持存算分离架构 | 
| EMR 3.43.0 | 2.8.5 | 1.7.1 | 4.16.1 | 支持高安全模式 | 
| EMR 3.43.1 | 2.8.5 | 1.7.1 | 4.16.1 | |
| EMR 3.44.0 | 2.8.5 | 1.7.1 | 4.16.1 | 
 | 
| EMR 3.44.1 | 2.8.5 | 1.7.1 | 4.16.1 | 
 | 
| EMR-3.45.0 | 2.8.5 | 1.7.1 | 4.16.1 | 
 | 
| EMR-3.45.1 | 2.8.5 | 1.7.1 | 4.16.1 | |
| EMR-3.46.0 | 2.8.5 | 1.7.1 | 4.16.1 | 
 | 
| EMR-3.46.2 | 2.8.5 | 1.7.1 | 4.16.1 | |
| EMR-3.47.1 | 2.8.5 | 1.7.1 | 4.16.1 | 无 | 
| EMR-3.48.2 | 2.8.5 | 1.7.1 | 4.16.1 | 无 | 
| EMR-3.49.1 | 2.8.5 | 1.7.1 | 4.16.1 | 在配置中增加配置项,您可以根据自己的需求选择HBase Thrift Server的版本,包括v1和v2。 | 
HBase版本兼容性
HBase从1.0版本开始遵循SemVer版本兼容协议,以版本号的Major、Minor、Minor三部分来明确版本之间的兼容性。以HBase 2.4.9版本为例,版本号的Major对应为2,Minor对应为4,Patch对应为9。
| 兼容性 | Major | Minor | Patch | 
| Client-Server接口/协议兼容性 | N | Y | Y | 
| Server-Server接口/协议兼容性 | N | Y | Y | 
| 文件格式兼容性 | N | Y | Y | 
| Client API 兼容性 | N | Y | Y | 
表格中的N表示不兼容,Y表示兼容。
HBase版本兼容性详情请参见Apache HBase Reference Guide。
- 跨Major版本升级,HBase无法保证兼容性。 
- 跨Minor版本升级,HBase可以保证兼容性。 
- 跨Patch版本升级,HBase可以保证兼容性。 
EMR HBase版本选择
- 如果是自建HBase集群迁移到EMR HBase,可以选择接近的EMR HBase版本进行迁移。 
- 如果没有自建集群,可根据依赖的Hadoop版本,选择EMR 3.x或EMR 5.x系列的HBase版本。