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

sac*_*hin 5 database-migration cassandra nosql scylla cassandra-3.0

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

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

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

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

Scylla 错误:-

scylla:[shard 0] rpc - 客户端 10.200.1.2:34236:服务器连接断开:连接关闭 scylla:[shard 0] rpc - 客户端 10.200.1.2:7000:连接失败:连接被拒绝。

卡桑德拉错误:-

[MessagingService-Outgoing-/10.200.2.2-Gossip] OutboundTcpConnection.java:411 - 到 /10.200.2.2 的套接字已关闭 [HANDSHAKE-/10.200.2.2] OutboundTcpConnection.java:570 - 无法与 /10.20.20HAND 握手版本/10.200.2.2] OutboundTcpConnection.java:561 - 与 /10.200.2.2 的握手版本

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

Mor*_*cia 11

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

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

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


Scy*_*reg 10

尽管 Scylla 在多个轴(SSTable、CQL/驱动程序等)上与 Cassandra 兼容,但 Scylla 确实需要对 gossip 协议进行一些更改,这使得无法加入 Cassandra 集群。没有已知的方法可以将 Scylla 加入 Cassandra 集群。

Scylla 已经发布了几个建议的迁移技术。

描述技术的博客:https : //www.scylladb.com/2019/04/02/spark-file-transfer-and-more-strategies-for-migrating-data-to-and-from-a-cassandra-or -scylla-cluster/

介绍迁移技术的网络研讨会 [需要注册]:https : //go.scylladb.com/wbn-spark-scylla-migration-strategies-registration.html

文档:https : //docs.scylladb.com/operating-scylla/procedures/cassandra_to_scylla_migration_process/

问答社区 Slack:http : //slack.scylladb.com