第4章 HBase数据备份及恢复

本章内容:

  • 使用distcp进行关机全备份
  • 使用CopyTable在表间复制数据
  • 将HBase表导出为HDFS上的转储文件
  • 以从HDFS上导入转储文件方式恢复HBase数据
  • 备份NameNode的元数据
  • 备份区域开始键
  • 集群复制

若要在生产环境中使用HBase,必须了解备份HBase的各种可选方案和操作方法。备份HBase时的难点是其待备份的数据集可能非常巨大,因此备份方案必须有很高的效率。HBase备份方案必须既能够伸缩至对数百TB的存储容量进行备份,又能够在一个合理的时间范围内完成数据恢复的工作。

备份HBase有两种策略。

  • 关闭集群然后进行全备份
  • 在线对集群进行备份

在进行关机全备份时,必须首先关闭HBase(或禁用所有表),然后使用Hadoop的distcp命令将HBase目录中的内容复制到同一(或另一)HDFS中的其他目录中。在使用关机全备份进行恢复时,只要使用distcp命令将所备份的文件复制回原HBase目录就可以了。

在线备份集群也有以下几种方法。

  • 使用CopyTable工具来将一张表的数据复制到另一张表中
  • 将HBase表导出为HDFS文件,然后再将文件导入到HBase中
  • HBase集群复制

CopyTable实用程序可以用来在一张表与本集群(或其他集群)中的另一张表之间复制数据。Export实用程序可将某张表中的数据转储到本集群的HDFS中。作为Export的搭档,Import实用程序可用来恢复转储文件中的数据。

上述每种方法都有其自身的优缺点。关机全备份的优点是在备份过程中集群不会有数据写入,因此它能够确保备份的一致性。其不足之处也很显而易见,那就是要关闭集群。对于在线备份集群的方式来说,因为集群处于运行状态,所以有在备份过程中丢失某些数据修改的风险。此外,HBase的数据修改只是一个行级的原子操作,如果你的表是彼此依赖的,而且在执行 ...

Get HBase管理指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.