串行备份操作

备份操作不能同时运行。操作包括创建,删除,还原和合并等操作。仅支持一个活动备份会话。 HBASE-16391 将引入多备份会话支持。

无法取消备份操作

备份和还原操作都无法取消。 ( HBASE-15997HBASE-15998 )。取消备份的解决方法是终止客户端备份命令(control-C),确保已退出所有相关的MapReduce作业,然后运行hbase backup repair命令以确保系统备份元数据一致。

备份只能保存到一个位置

将备份信息复制到多个位置需要用户自己实现。 HBASE-15476 将引入本质上指定多备份目的地的能力。

需要HBase超级用户访问

只允许HBase超级用户(例如hbase)执行备份/恢复,这可能会对共享HBase用户造成问题。当前的缓解措施需要与系统管理员协调,以构建和部署备份和恢复策略( HBASE-14138 )。

备份恢复是在线操作

要从备份数据执行还原操作,当前实现需要HBase集群在线( HBASE-16573 )。

某些操作可能会失败并需要重新运行

HBase备份功能主要由客户端驱动。虽然HBase连接中内置了标准的HBase重试逻辑,但执行操作中的持久性错误可能会传播回客户端(例如,由于区域分裂导致的快照失败)。应将备份实现从客户端移动到将来的ProcedureV2框架中,这将为瞬态/可重试故障提供额外的稳健性。 hbase backup repair命令用于纠正系统无法自动检测和恢复的状态。

避免声明公开API

虽然存在与此功能交互的Java API并且其实现与接口分离,但是仍然不足以说明它是否是我们打算给普通用户使用的。因此,它被标记为Private受众,一旦用户开始尝试该功能,这将会破坏兼容性( HBASE-17517 )。

缺乏备份和恢复的全局指标

单独的备份和恢复操作包含有关操作所包含的工作量的指标,但没有集中位置(例如Master UI)提供执行相关信息( HBASE-16565 )。