Cassandra 3.9陷入加盟状态

时间:2018-02-16 12:46:43

标签: cassandra

我有一个14节点的cassandra 3.9集群,每个节点上有大约250GB的数据。最近我一直在尝试向该集群添加第15个节点。该节点在过去2天内处于“加入”状态。 netstas很清楚。我发现加入节点的system.log中可疑的主要问题是这些错误。

ERROR [Native-Transport-Requests-1] 2018-02-16 15:43:32,635 Message.java:617 - Unexpected exception during request; channel = [id: 0x8ed1cb3b, L:/**.**.**.42:9042 - R:/**.**.**.**:41614]
java.lang.NullPointerException: null
        at org.apache.cassandra.auth.PasswordAuthenticator.authenticate(PasswordAuthenticator.java:88) ~[apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.auth.PasswordAuthenticator.access$300(PasswordAuthenticator.java:59) ~[apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.getAuthenticatedUser(PasswordAuthenticator.java:220) ~[apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:78) ~[apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513) [apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407) [apache-cassandra-3.9.jar:3.9]
        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.39.Final.jar:4.0.39.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) [netty-all-4.0.39.Final.jar:4.0.39.Final]
        at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) [netty-all-4.0.39.Final.jar:4.0.39.Final]
        at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:357) [netty-all-4.0.39.Final.jar:4.0.39.Final]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_91]
        at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) [apache-cassandra-3.9.jar:3.9]
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) [apache-cassandra-3.9.jar:3.9]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]

此错误消息来自尝试连接到此节点的客户端。它似乎失败了身份验证。我如何处理这种情况?我应该如何使这个节点恢复正常?

1 个答案:

答案 0 :(得分:1)

这里有两个不同的问题,

  1. 客户端面临的auth问题与新节点引导期间Cassandra 3.9的错误有关。它已在Cassandra的更高版本中得到解决,如https://issues.apache.org/jira/browse/CASSANDRA-12813所述。

  2. 我们遇到了类似于Cassandra 3.9的流媒体问题。在深入了解system.log的同时,由于超出默认的commitlog_segment_size,因此无法压缩大分区(分区大于100MB)的错误。 。一旦我们将commitlog_segment_size_in_mb增加到512mb,我们就可以绕过它。检查巨大的分区警告并相应地调整大小。