HBase Replication - 在 3 个数据中心复制数据

HBase Replication - Replicate data in 3 data centers

在我们的应用程序中,我们拥有来自 3 个不同国家/地区的数据,并且我们将数据持久保存在 HBase 中。

在每个国家/地区,我们将保留所有 3 个国家/地区的数据。

为了实现这一目标,我们是否可以使用这 3 个国家/地区的数据中心创建我们的 Hadoop 集群,并将数据复制保持为 3。因此,由于机架感知功能,我们的数据将在所有国家/地区自动复制3 个国家?

任何指点都会有很大帮助。

谢谢

这个解决方案在理论上看起来可行,但写入可能会变得非常慢,因为数据需要复制到位于不同地理位置的 3 个节点。需要试用一下,看看延迟是否在可容忍的范围内。

另一种选择是,在三个位置拥有三个不同的 HBase 集群,并以这样一种方式设计表格,即可以在夜间将来自一个 HBase 集群的表格复制到另一个 HBase 集群,以保持数据每天同步。在这种情况下,一个 HBase 集群将拥有来自它自己位置的当前数据,但来自其他两个城市的数据将滞后一天。

你不能拥有跨国家的 HBASE 集群。由于延迟、故障转移问题、网络问题等,这将不起作用。 一个不错的选择是拥有 3 个集群,每个国家/地区一个 HBase table 并按照上面的建议在集群之间同步 tables

据我所知只有Google成功实现了一个兼具一致性和可用性的多国数据库:Spanner。但该解决方案的关键要素是:数据中心之间的专用物理网络和他们自己的 NTP 实施,确保世界各地的所有服务器都具有相同的时钟,精度仅为几毫秒。