Cassandra:无法分配请求的地址

plz*_*lme 4 cassandra

我有datastax-cassandra 1.2.5,我在.yaml文件中有以下设置

  • storage_port:7000
  • ssl_storage_port:7001
  • listen_address:localhost
  • rpc_port:9160

我一直这样.我曾尝试更改存储端口一次,但它比同样的东西更有效.我无法再次重启cassandra

    INFO 16:33:02,714 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-17-Data.db (241 bytes) for commitlog position ReplayPosition(segmentId=1371684781848, position=50142)
ERROR 16:33:02,793 Exception encountered during startup
java.lang.RuntimeException: java.net.BindException: Can't assign requested address
    at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:446)
    at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:389)
    at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:583)
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
Caused by: java.net.BindException: Can't assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:344)
    at sun.nio.ch.Net.bind(Net.java:336)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
    at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:436)
    ... 7 more
java.lang.RuntimeException: java.net.BindException: Can't assign requested address
    at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:446)
    at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:389)
    at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:583)
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
Caused by: java.net.BindException: Can't assign requested address
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:344)
    at sun.nio.ch.Net.bind(Net.java:336)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
    at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:436)
    ... 7 more
Exception encountered during startup: java.net.BindException: Can't assign requested address
ERROR 16:33:02,798 Exception in thread Thread[StorageServiceShutdownHook,5,main]
java.lang.NullPointerException
    at org.apache.cassandra.service.StorageService.stopRPCServer(StorageService.java:321)
    at org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:362)
    at org.apache.cassandra.service.StorageService.access$000(StorageService.java:88)
    at org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:513)
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
    at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

Wil*_*ire 6

最有可能的是网络配置有问题:localhost解析为DHCP分配的无效主机名(如类似192-168-1-10.local)或本地IPv6地址(::1),并且在java中禁用IPv6.

  • 校验 /etc/hosts
  • 检查hostname命令输出
  • 尝试设置listen_address127.0.0.1有效的IP地址.
  • 检查rpc_address设置cassandra.yaml.尝试将其设置为127.0.0.1