在我们的应用程序中,我们拥有来自3个不同国家的数据,并且我们将数据持久存储在HBase中。
在每个国家/地区,我们将保留所有3个国家/地区的数据。
要实现这一目标,是否有可能我们在所有这三个国家/地区使用数据中心来创建Hadoop集群,并且将数据复制保持为3。因此,由于具有机架感知功能,我们的数据将在所有3个国家/地区自动复制国家?
任何指针都会有很大帮助。
谢谢
答案 0 :(得分:0)
该解决方案在理论上看起来可行,但由于数据需要复制到位于不同地理位置的3个节点,因此写入速度可能会非常慢。需要对其进行尝试,并检查延迟是否在可容忍的限制内。
另一种选择是,在三个位置具有三个不同的HBase群集并设计表,以使一个HBase群集中的表可以在夜间复制到另一个,以保持每天的数据同步。在这种情况下,一个HBase群集将拥有其自身位置的当前数据,而来自其他两个城市的数据将滞后一天。
答案 1 :(得分:0)
您不能在各个国家/地区拥有HBASE集群。由于延迟,故障转移问题,网络问题等,此方法无法正常工作。 一个不错的选择是拥有3个集群,每个国家一个HBase表,并按照上述建议在集群之间同步表
据我所知,只有Google成功地实现了提供一致性和可用性的多国数据库:Spanner。但是该解决方案的关键要素是:数据中心与NTP自己的实现之间的专用物理网络,可确保世界各地的所有服务器都具有相同的时钟,而精度只有几毫秒。