有没有一种有效的方法可以在同一个集群中在 HBase 中创建表结构+数据的副本?显然目标表会有不同的名称。到目前为止我发现了什么:
CopyTable 作业,已被描述为用于在不同HBase 集群之间复制数据的工具。我认为它会支持集群内操作,但不知道它是否旨在有效地处理这种情况。
使用导出+导入作业。这样做听起来像是一种 hack,但由于我是 HBase 的新手,也许这可能是一个真正的解决方案?
你们中的一些人可能会问我为什么要这样做。我的情况是我有数百万个需要访问的对象,如果你愿意的话,它们处于“快照”状态。有一个每天运行的批处理过程会更新其中的许多对象。如果该批处理过程中的任何步骤失败,我需要能够“回滚”到原始状态。不仅如此,在批处理过程中,我还需要能够将请求服务到原始状态。
因此,当前流程是我将原始表复制到工作副本,在更新工作副本时继续使用原始表服务请求。如果批处理成功完成,我会通知我的所有服务使用新表,否则我会丢弃新表。
使用 BDB 效果很好,但我现在处于一个真正大数据的全新世界,所以我可能采取了错误的方法。如果有人对我应该使用的模式有任何建议,他们非常受欢迎。:-)