如何在 Docker 中将一些节点添加到 Cassandra 上的现有集群
How to add some nodes to existing cluster on Cassandra in Docker
我在 Docker 中使用 Cassandra 的最新默认图像。在 Cassandra 中,我的数据有一个键空间。我想要做的是添加一些节点并更改复制因子。我怎样才能做到这一点?
因此,要做到这一点,您的 Mac 上需要两个 Cassandra 容器 运行ning。您还需要设置特定的容器名称,以便它们可以用作两者的“种子”列表。
Bitnami 有一个关于如何执行此操作的好文档,只需翻到“设置集群”部分的一半:
https://hub.docker.com/r/bitnami/cassandra/
基本上,您创建一个特定的网络。同一网络上的所有容器应该能够相互通信。理论上,您 可以 跳过此步骤,您的容器将 运行 在“默认”网络上。但是创建特定网络是一种很好的做法。
docker network create cassandra_network
像这样创建第一个节点:
docker run --name cassandra-node1 \
--net=cassandra_network \
-p 9042:9042 \
-e CASSANDRA_CLUSTER_NAME=cassandra-cluster \
-e CASSANDRA_SEEDS=cassandra-node1,cassandra-node2 \
bitnami/cassandra:latest
如果您不想要“最新”(或不想使用 Bitnami 的图像),那么您可以将最后一行换成这个以获得社区图像和任何版本:
cassandra:4.0.1
查看日志以确保它出现。然后使用相同的命令创建第二个节点,但更改名称。
docker run --name cassandra-node2 \
--net=cassandra_network \
-p 9042:9042 \
-e CASSANDRA_CLUSTER_NAME=cassandra-cluster \
-e CASSANDRA_SEEDS=cassandra-node1,cassandra-node2 \
bitnami/cassandra:latest
一旦第二个节点启动并加入,您可以调整您的密钥空间复制(取决于您的数据中心名称):
ALTER KEYSPACE system_auth WITH
replication={'class':'NetworkTopologyStrategy','dc1':'2'};
或 SimpleStrategy
:
ALTER KEYSPACE system_auth WITH
replication = {'class': 'SimpleStrategy', 'replication_factor': '2'};
包括供参考的社区文档:https://hub.docker.com/_/cassandra
我在 Docker 中使用 Cassandra 的最新默认图像。在 Cassandra 中,我的数据有一个键空间。我想要做的是添加一些节点并更改复制因子。我怎样才能做到这一点?
因此,要做到这一点,您的 Mac 上需要两个 Cassandra 容器 运行ning。您还需要设置特定的容器名称,以便它们可以用作两者的“种子”列表。
Bitnami 有一个关于如何执行此操作的好文档,只需翻到“设置集群”部分的一半:
https://hub.docker.com/r/bitnami/cassandra/
基本上,您创建一个特定的网络。同一网络上的所有容器应该能够相互通信。理论上,您 可以 跳过此步骤,您的容器将 运行 在“默认”网络上。但是创建特定网络是一种很好的做法。
docker network create cassandra_network
像这样创建第一个节点:
docker run --name cassandra-node1 \
--net=cassandra_network \
-p 9042:9042 \
-e CASSANDRA_CLUSTER_NAME=cassandra-cluster \
-e CASSANDRA_SEEDS=cassandra-node1,cassandra-node2 \
bitnami/cassandra:latest
如果您不想要“最新”(或不想使用 Bitnami 的图像),那么您可以将最后一行换成这个以获得社区图像和任何版本:
cassandra:4.0.1
查看日志以确保它出现。然后使用相同的命令创建第二个节点,但更改名称。
docker run --name cassandra-node2 \
--net=cassandra_network \
-p 9042:9042 \
-e CASSANDRA_CLUSTER_NAME=cassandra-cluster \
-e CASSANDRA_SEEDS=cassandra-node1,cassandra-node2 \
bitnami/cassandra:latest
一旦第二个节点启动并加入,您可以调整您的密钥空间复制(取决于您的数据中心名称):
ALTER KEYSPACE system_auth WITH
replication={'class':'NetworkTopologyStrategy','dc1':'2'};
或 SimpleStrategy
:
ALTER KEYSPACE system_auth WITH
replication = {'class': 'SimpleStrategy', 'replication_factor': '2'};
包括供参考的社区文档:https://hub.docker.com/_/cassandra