我正在尝试在AWS上部署Cassandra集群。我按照http://datastax.com/documentation/cassandra/2.1/cassandra/install/installAMI.html的说明进行操作 它看起来一切正常,但一个节点仍然得到0响应。在初始脚本之后我跑了
cassandra-stress write
命令休息两个节点,一切都很好。当我试图运行时
失败的节点上的nodetool status
命令,我收到此错误消息
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused'.
我找了cassandra服务而且它已经关闭了,当我启动它并再次运行时出现了这个错误
错误:群集中没有节点。这个节点是否已经完成启动? - 堆栈跟踪 - java.lang.RuntimeException:集群中没有节点。这个节点是否已经完成启动? 在org.apache.cassandra.dht.Murmur3Partitioner.describeOwnership(Murmur3Partitioner.java:129) 在org.apache.cassandra.service.StorageService.effectiveOwnership(StorageService.java:3763) 在org.apache.cassandra.service.StorageService.effectiveOwnership(StorageService.java:104) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 在javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) 在javax.management.remote.rmi.RMIConnectionImpl.access $ 300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl $ PrivilegedOperation.run(RMIConnectionImpl.java:1328) 在javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) 在javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport $ 1.run(Transport.java:177) at sun.rmi.transport.Transport $ 1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(TCPTransport.java:811) at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(TCPTransport.java:670) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:744)
当我再次运行它时,我收到了第一个错误,并且cassandra服务已关闭。我还改了/etc/cassandra/cassandra.yaml文件。我设置种子,侦听器地址,rpc地址,群集名称和令牌与群集的其余部分相同。当我再次运行时,Cassandra服务会停止运行。我该如何解决?
答案 0 :(得分:2)
从此节点尝试telnet到其他节点的端口7000。并且从其他节点尝试对此节点执行相同操作。很可能您为此节点分配了一个不同的安全组,这就是它无法连接到群集的其余部分的原因。
我设置种子,监听器地址,rpc地址,群集名称和令牌 与群集的其余部分相同。
P.S。我希望您没有为此节点分配相同的令牌,并将您设置的侦听器地址分配给节点自己的IP,而不是其他节点的IP?
答案 1 :(得分:0)
"节点已完成启动"意味着卡桑德拉还在开始。这可能需要几分钟。还有其他错误吗?
什么是
nodetool status
从其他节点说?