2016-10-12 32 views
0

我们的Cassandra集群在AWS EC2上运行,环中有4个节点。我们希望将整个环境迁移到Azure。 我们使用该流程在现有数据中心(AWS EC2)中添加新数据中心(Azure),并使用策略为NetworkTopology并使用GossipingPropertyFileSnitch。使用NetworkTopology进行Cassandra迁移后的数据不匹配

添加新数据中心后,我们在新数据中心的所有节点上运行以下命令。 #nodetool重建 - “数据中心名称”

现有数据中心中所有节点上的数据总计约为3 TB。 重建新数据中心需要大约6-7天的时间,并且system.log说 - 完成所有会话。我们检查了新数据中心中每个节点上的数据库大小,发现所有4个节点的大小都比现有数据中心小(大约75gb,即总共300GB)。

有人请让我知道,如果这是检查新数据中心的数据是否与现有数据中心相同的正确方法。

回答

1

数据大小不是检查数据不匹配的正确方法。

尺寸可能会有所不同,由于种种原因,他们中的一些我能想到的:

  1. 压实:你有什么压实策略?应用程序的数据是不可变的吗?如果是,那么压实不是原因,否则可能是。
  2. Flush:在检查这些尺寸之前是否刷新节点?如果没有,那么一些数据可能在memtables中。
  3. 什么是关键缓存大小等?你是如何精确计算数据大小的?它是一个简单的“du”数据目录还是单独的表格文件添加在一起?因为数据目录包含索引文件,表格中的实际数据等。同样,这不是正确的方法。

我的建议是首先查看每个表中的行数。确保两个DC的所有设置都相同。然后编写一个spark工作来检查一致性(通过校验和或单个字段,校验和可能会更快)。确保火花作业以最佳方式运行并且不需要洗牌数据,它应该能够在几个小时内运行并给出结果。

注意:这是我可以做的最好的事情,而无需真正了解更多细节。

相关问题