cassandra - Scylla 数据中心和 Cassandra 数据中心在同一集群中

标签 cassandra nosql database-migration cassandra-3.0 scylla

我运行了 21 个节点的 Cassandra 集群,其中包含 150 多个架构和大约 20 TB 的数据。我需要在没有停机的情况下将架构和数据从 Cassandra 转移到 7 节点 Scylla。

Scylla 和 Cassandra 都支持相同的 cqlsh 版本,并且在分发数据和八卦方面几乎相同。

为了转移数据,我尝试在现有 Cassandra 集群中创建新的 Scylla 数据中心并更新 key 空间拓扑,使 Scylla 也在复制的 DC 列表中,然后引导/重建集群中的 Scylla 节点。

为此,我在 node.js 中添加种子列表时收到 TCP 连接失败的错误。

Scylla 错误:-

scylla: [shard 0] rpc - client 10.200.1.2:34236: server connection dropped: connection is closed scylla: [shard 0] rpc - client 10.200.1.2:7000: fail to connect: Connection refused.



Cassandra 错误:-

[MessagingService-Outgoing-/10.200.2.2-Gossip] OutboundTcpConnection.java:411 - Socket to /10.200.2.2 closed [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:570 - Cannot handshake version with /10.200.2.2 [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:561 - Handshaking version with /10.200.2.2



请帮助我,如果有人已经这样做了,或者有更好的想法在不停机的情况下转移数据,没有数据丢失,风险更小。

最佳答案

您不能在同一集群上拥有包含 C* 和 Scylla 节点的异构集群。

创建一个单独的 scylla 集群,创建架构,更改应用程序以执行双重写入(对两个集群),然后将 C* 历史数据迁移到 Scylla。

有多种方法可以迁移数据。这应该会有所帮助:https://youtu.be/CDOesdWDT9Y没有停机时间,没问题,也有选择。

关于cassandra - Scylla 数据中心和 Cassandra 数据中心在同一集群中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61206077/

相关文章:

node.js - 错误 : "Please install sqlite3 package manually" when I execute "sequelize db:migrate"

cassandra - 尽管我们可以隔离协调器,但为什么 CAP 定理认为 cassandra 具有分区容忍性?

arrays - MongoDB 嵌入式 vs 数组子文档性能

cassandra - SELECT DISTINCT cql 忽略 WHERE 子句

hadoop - 将数据导入Hadoop

java - 使用 Leveled Compaction 的低 TTL,我应该减少 gc_grace_seconds 以提高读取性能而不影响删除复制吗?

laravel - 设置 Laravel 迁移的默认值

php - 完全重置 Laravel 5 迁移内容?

lucene - 为什么我的Lucene文档结果为空?

cassandra - 如何在openshift中运行作业以安排特定脚本?