我有3个elassandra节点在docker容器中运行。
容器的创建方式如下:
主机10.0.0.1:docker run--name elassandra-node-1--net=host-e cassandra\u seeds=“10.0.0.1”-e cassandra\u cluster\u name=“bd storage”-e cassandra\u dc=“dc1”-e cassandra\u rack=“r1”-d strapdata/elassandra:latest
主机10.0.0.2:docker run--name elassandra-node-2--net=host-e cassandra\u seeds=“10.0.0.1,10.0.0.2”-e cassandra\u cluster\u name=“bd storage”-e cassandra\u dc=“dc1”-e cassandra\u rack=“r1”-d strapdata/elassandra:latest
主机10.0.0.3:docker run--name elassandra-node-3--net=host-e cassandra\u seeds=“10.0.0.1,10.0.0.2,10.0.0.3”-e cassandra\u cluster\u name=“bd storage”-e cassandra\u dc=“dc1”-e cassandra\u rack=“r1”-d strapdata elassandra:latest
集群在创建后的几天内运行良好,弹性,Cassandra都是完美的。
然而,目前所有的cassandra节点彼此都无法访问:所有节点上的nodetool状态如下
数据中心:dc1
status=up/down |/state=normal/leaving/joining/moving--address load tokens owns(effective)host id rack 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 un 10.0.1 11.9 gib 8 100.0%5c1afcff-b0aa-4985-a3cc-7f932056c08f r1
其中un是当前主机10.0.0.1,在所有其他节点上相同。
10.0.0.1上的nodetool describecluster类似于
群集信息:name:bd storage snitch:org.apache.cassandra.locator.gossipingpropertyfilesnitch dynamicendpointsnitch:enabled partitioner:org.apache.cassandra.dht.murrul3partitioner schema versions:24fa5e55-3935-3c0e-9808-99ce502fe98d:[10.0.0.1]
UNREACHABLE: [10.0.0.2,10.0.0.3]
当连接到第一个节点时,它只会重复以下信息:
2018-12-09 07:47:32927警告onaltasks:1]org.apache.cassandra.auth.cassandrarolemanager.setupdefaultrole(cassandrarolemanager。java:361)cassandrarolemanager跳过了默认角色设置:某些节点未就绪2018-12-09 07:47:32,927信息[选项onaltasks:1]org.apache.cassandra.auth.cassandrarolemanager$4.run(cassandrarolemanager。java:400)安装任务失败,出现错误,正在重新计划2018-12-09 07:47:32,980 info[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 info[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:21972[偏头痛]tionstage:1]org.apache.cassandra.service.migrationtask.runmaythrow(迁移任务。java:67)无法发送架构拉取请求:node/10.0.0.2已关闭。
迄今为止已尝试:同时重新启动所有容器依次重新启动所有容器重新启动所有容器中的cassandra,如:service cassandra restart nodetool disablegossip then enable it nodetool repair:repair command#1 failed with error endpoint not alive:/10.0.0.2
似乎所有的节点模式都是不同的,但我仍然不明白为什么它们被标记为彼此独立。
1条答案
按热度按时间bd1hkmkf1#
如果您有不同的cassandra版本,那么nodetool repair将不会提取数据。请保留相同版本的cassandra。有时,节点显示下来或无法访问,因为八卦是不正常发生。原因可能是网络、节点上的高负载或节点非常繁忙以及大量i/o操作正在进行,如修复、压缩等。