串行备份操作
备份操作不能同时运行。操作包括创建,删除,还原和合并等操作。仅支持一个活动备份会话。 HBASE-16391 将引入多备份会话支持。
无法取消备份操作
备份和还原操作都无法取消。 ( HBASE-15997 , HBASE-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 )。