Cassandra节点彼此无法访问

时间:2018-12-09 08:22:55

标签: cassandra nosql bigdata nodes elassandra

我有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警告[OptionalTask​​s:1] org.apache.cassandra.auth.CassandraRoleManager.setupDefaultRole(CassandraRoleManager.java:361)CassandraRoleManager跳过了默认角色设置:某些节点尚未准备就绪   2018-12-09 07:47:32,927信息[OptionalTask​​s: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

似乎所有节点架构都不相同,但是我仍然不明白为什么将它们标记为彼此向下。

1 个答案:

答案 0 :(得分:0)

如果您使用的Cassandra版本不同,则nodetool修复将不会提取数据。请保留相同版本的Cassandra。有时节点由于八卦而出现故障或无法连接。原因可能是网络,该节点或该节点上的高负载非常繁忙以及正在进行的大量I / O操作,例如修复,压缩等。