执行 HBase 备份有两种广泛的策略:使用完全群集关闭进行备份,以及在实时群集上备份。每种方法都有利有弊。
有关其他信息,请参阅 Sematext 博客上的 HBase 备份选项。
某些环境可以容忍其 HBase 群集的定期完全关闭,例如,如果它正在使用后端分析容量而不是服务于前端 Web 页面。好处是 NameNode / Master 是 RegionServers 已关闭,因此没有机会错过对 StoreFiles 或元数据的任何正在进行的更改。显而易见的是群集已关闭。步骤包括:
Distcp 可用于将 HDFS 中 HBase 目录的内容复制到另一个目录中的同一群集,或复制到另一个群集。
注意:Distcp 适用于这种情况,因为群集已关闭,并且没有对文件的正在进行的编辑。通常不建议在实时群集上对 HBase 目录中的文件进行分拣。
从 HDFS 备份 hbase 目录通过 distcp 复制到'real'hbase 目录。复制这些文件的行为会创建新的 HDFS 元数据,这就是为什么这种恢复不需要从 HBase 备份时恢复 NameNode 的原因,因为它是特定 HDFS 目录的恢复(通过 distcp) (即 HBase 部分)不是整个 HDFS 文件系统。
此方法假定存在第二个集群。有关详细信息,请参阅复制上的 HBase 页面。
copytable 实用程序可用于将数据从一个表复制到同一个集群上的另一个表,或者将数据复制到另一个集群上的另一个表。
由于群集已启动,因此存在复制过程中可能遗漏编辑的风险。
export 方法将表的内容转储到同一群集上的 HDFS。要恢复数据,将使用 import 实用程序。
由于群集已启动,因此存在导出过程中可能错过编辑的风险。