使用2个节点和现有安装安装cassandra集群

oxf4rvwz  于 2021-06-13  发布在  Cassandra
关注(0)|答案(1)|浏览(385)

我有两台服务器,分别安装了cassandra,每个节点都有自己的表,它们的复制因子都是1。
所以现在我想把这两个服务器连接到一个集群。我能保存数据和管道吗?
你能给个建议吗?

yebdmbv4

yebdmbv41#

您不能以“联机”方式执行此操作,因为它们实际上属于两个不同的群集,具有自己的群集id等。您可以使用以下方法执行此操作(根据数据量,在此列表中,“群集2”是数据较少的节点):
停止所有使用群集2的应用程序
复制集群2的模式,例如 cqlsh -e 'describe schema;' > schema.cql 使用关闭群集2节点 nodetool drain 首先(必需!),然后执行停止
将数据目录的内容移到其他地方,确保没有遗留旧数据(还要检查提交日志、提示等)
修改cluster 2节点的配置-将cluster name设置为cluster 1 name,指向cluster 1节点作为种子(非常重要,不要使用cluster 2节点作为种子!)
启动集群2的节点-它将启动加入集群1并从中流式传输数据的过程
节点2之后显示为 UNnodetool status ,您可以开始复制数据:
如果集群2有不同结构的键空间和表,那么使用第一步中保存的模式手动创建它们。如果表具有相同的名称,但结构不同,如不同的字段类型、主键等,请为它们创建新表,如下所示 sstableloader 无法将数据流传输到具有不同结构的表
使用sstableloader从集群2节点的已保存数据目录流化数据
另一种方法可能类似-先将数据流传输到集群1的节点,然后擦除集群2上的数据目录,并将其加入。。。

相关问题