执行 HBase 备份有两种广泛的策略:使用完全群集关闭进行备份,以及在实时群集上备份。每种方法都有利有弊。

有关其他信息,请参阅 Sematext 博客上的 HBase 备份选项

157.1。完全关机备份

某些环境可以容忍其 HBase 群集的定期完全关闭,例如,如果它正在使用后端分析容量而不是服务于前端 Web 页面。好处是 NameNode / Master 是 RegionServers 已关闭,因此没有机会错过对 StoreFiles 或元数据的任何正在进行的更改。显而易见的是群集已关闭。步骤包括:

157.1.1。停止 HBase

157.1.2。 DistCp 使用

Distcp 可用于将 HDFS 中 HBase 目录的内容复制到另一个目录中的同一群集,或复制到另一个群集。

注意:Distcp 适用于这种情况,因为群集已关闭,并且没有对文件的正在进行的编辑。通常不建议在实时群集上对 HBase 目录中的文件进行分拣。

157.1.3。恢复(如果需要)

从 HDFS 备份 hbase 目录通过 distcp 复制到'real'hbase 目录。复制这些文件的行为会创建新的 HDFS 元数据,这就是为什么这种恢复不需要从 HBase 备份时恢复 NameNode 的原因,因为它是特定 HDFS 目录的恢复(通过 distcp) (即 HBase 部分)不是整个 HDFS 文件系统。

157.2。实时群集备份 - 复制

此方法假定存在第二个集群。有关详细信息,请参阅复制上的 HBase 页面。

157.3。实时群集备份 - CopyTable

copytable 实用程序可用于将数据从一个表复制到同一个集群上的另一个表,或者将数据复制到另一个集群上的另一个表。

由于群集已启动,因此存在复制过程中可能遗漏编辑的风险。

157.4。实时群集备份 - 导出

export 方法将表的内容转储到同一群集上的 HDFS。要恢复数据,将使用 import 实用程序。

由于群集已启动,因此存在导出过程中可能错过编辑的风险。