我有3个Elassandra节点在docker容器中运行。
创建的容器如下:
主机10.0.0.1:docker run --name elassandra-node-1 --net = host -e CASSANDRA_SEEDS =“ 10.0.0.1” -e CASSANDRA_CLUSTER_NAME =“ BD存储” -e CASSANDRA_DC =“ DC1” -e CASSANDRA_RACK =“ r1” -dtrapdata / elassandra:latest
主机10.0.0.2:docker run --name elassandra-node-2 --net = host -e CASSANDRA_SEEDS =“ 10.0.0.1,10.0.0.2” -e CASSANDRA_CLUSTER_NAME =“ BD Storage” -e CASSANDRA_DC =“ DC1 “ -e CASSANDRA_RACK =” r1“ -d stripdata / elassandra:latest
主机10.0.0.3:docker run --name elassandra-node-3 --net = host -e CASSANDRA_SEEDS =“ 10.0.0.1,10.0.0.2,10.0.0.3” -e CASSANDRA_CLUSTER_NAME =“ BD Storage” -e CASSANDRA_DC =“ DC1” -e CASSANDRA_RACK =“ r1” -d stripdata / elassandra:latest
自创建以来,Cluster运行良好几天,弹性,卡桑德拉都很完美。
但是,当前所有cassandra节点都变得无法访问: 所有节点上的Nodetool状态类似
数据中心:DC1
状态=上/下 | /状态=正常/离开/加入/移动 -拥有地址加载令牌(有效)主机ID机架 DN 10.0.0.3 11.95 GiB 8 100.0%7652f66e-194e-4886-ac10-0fc21ac8afeb r1 DN 10.0.0.2 11.92 GiB 8 100.0%b91fa129-1dd0-4cf8-be96-9c06b23daac6 r1 联合国10.0.0.1 11.9 GiB 8 100.0%5c1afcff-b0aa-4985-a3cc-7f932056c08f r1
其中联合国是当前主机10.0.0.1 在所有其他节点上相同。
10.0.0.1上的Nodetool describecluster就像
集群信息: 名称:BD存储 告密者:org.apache.cassandra.locator.GossipingPropertyFileSnitch DynamicEndPointSnitch:已启用 分区程序:org.apache.cassandra.dht.Murmur3Partitioner 模式版本: 24fa5e55-3935-3c0e-9808-99ce502fe98d:[10.0.0.1]
UNREACHABLE: [10.0.0.2,10.0.0.3]
当附加到第一个节点时,它仅重复以下信息:
2018-12-09 07:47:32,927警告[OptionalTasks:1] org.apache.cassandra.auth.CassandraRoleManager.setupDefaultRole(CassandraRoleManager.java:361)CassandraRoleManager跳过了默认角色设置:某些节点尚未准备就绪 2018-12-09 07:47:32,927信息[OptionalTasks:1] org.apache.cassandra.auth.CassandraRoleManager $ 4.run(CassandraRoleManager.java:400)安装任务失败,错误,重新计划 2018-12-09 07:47:32,980信息[HANDSHAKE- / 10.0.0.2] org.apache.cassandra.net.OutboundTcpConnection.lambda $ handshakeVersion $ 1(OutboundTcpConnection.java:561)握手版本为/10.0.0.2 2018-12-09 07:47:32,980信息[HANDSHAKE- / 10.0.0.3] org.apache.cassandra.net.OutboundTcpConnection.lambda $ handshakeVersion $ 1(OutboundTcpConnection.java:561)握手版本为/10.0.0.3
一段时间后,重新启动某些节点:
2018-12-09 07:52:21,972警告[MigrationStage:1] org.apache.cassandra.service.MigrationTask.runMayThrow(MigrationTask.java:67)无法发送架构提取请求:节点/10.0.0.2下来了。
到目前为止已尝试: 同时重启所有容器 重新启动所有容器 在所有容器中重新启动cassandra,例如:service cassandra restart Nodetool disablegossip然后启用它 Nodetool修复:修复命令#1失败,错误消息端点未激活:/10.0.0.2
似乎所有节点架构都不相同,但是我仍然不明白为什么将它们标记为彼此向下。
答案 0 :(得分:0)
如果您使用的Cassandra版本不同,则nodetool修复将不会提取数据。请保留相同版本的Cassandra。有时节点由于八卦而出现故障或无法连接。原因可能是网络,该节点或该节点上的高负载非常繁忙以及正在进行的大量I / O操作,例如修复,压缩等。