2017-08-09 95 views
1

Cassandra總是正常的,但是今天當我進入cassandra的bin文件夾並運行./cassandra時,沒有任何響應,只需進入新的命令行並且沒有打開過程。而且我也無法打開cqlsh。你能幫我解決這個問題嗎?我無法打開cassandra

SYSTEM.LOG顯示唯一的錯誤:

ERROR [main] 2017-08-07 10:33:59,154 CassandraDaemon.java:655 - Port already in use: 7199; nested exception is: 
java.net.BindException: Address already in use (Bind failed) 
java.net.BindException: Address already in use (Bind failed)   
at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.8.0_141]   
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) ~[na:1.8.0_141] 
at java.net.ServerSocket.bind(ServerSocket.java:375) ~[na:1.8.0_141]   
at java.net.ServerSocket.<init>(ServerSocket.java:237) ~[na:1.8.0_141] 
at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231) ~[na:1.8.0_141] 
at org.apache.cassandra.utils.RMIServerSocketFactoryImpl.createServerSocket(RMIServerSocketFactoryImpl.java:33) ~[apache-cassandra-2.2.10.jar:2.2.10]   
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666) ~[na:1.8.0_141]  
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:330) ~[na:1.8.0_141]  
at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:249) ~[na:1.8.0_141]  
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) ~[na:1.8.0_141]  
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[na:1.8.0_141]  
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:236) ~[na:1.8.0_141]  
at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:213) ~[na:1.8.0_141]  
at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:173) ~[na:1.8.0_141]  
at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:144) ~[na:1.8.0_141]  
at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:239) ~[na:1.8.0_141]  
at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:119) [apache-cassandra-2.2.10.jar:2.2.10]  
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188) [apache-cassandra-2.2.10.jar:2.2.10]  
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:533) [apache-cassandra-2.2.10.jar:2.2.10]  
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:642) [apache-cassandra-2.2.10.jar:2.2.10] 
+2

檢查system.log的任何錯誤 –

+0

我已經在問題中添加了錯誤,但我想也許是這個問題 – Oak

回答

0

好像端口已在使用。 你可以殺死過程如下

sudo fuser -n tcp 7199 

它會顯示該端口上運行的所有進程ID。 你可以使用下面的命令殺死。

sudo kill -9 Pid 

現在開始卡桑德拉。它將開始。

+0

我是root用戶,所以沒有sudo。並找不到熱熔器命令 – Oak

+0

找到** ps ax | grep cassandra **並殺死該進程ID。 –

+0

root @ srv-machine-learning01:〜#ps ax | grep cassandra 845 pts/2 S + 0:00 grep cassandra root @ srv-machine-learning01:〜#kill -9 845 -bash:kill(845) - 沒有這樣的過程 – Oak

0

如果某件事情合法地使用默認的JMX端口(7199),您可以很容易地更改Cassandra用於JMX的端口。尋找在cassandra-env.sh文件JMX_PORT線,並將其更改爲您知道是不是正在使用的端口:

JMX_PORT="7199" 

到:

JMX_PORT="9455" 

消除端口衝突,並查看是否卡桑德拉將開始然後。