Cassandra:无法分配请求的地址

时间:2013-06-19 21:22:44

标签: 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)

1 个答案:

答案 0 :(得分:6)

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

  • 检查/etc/hosts
  • 检查hostname命令
  • 的输出
  • 尝试将listen_address设置为127.0.0.1或有效的IP地址。
  • 检查rpc_address中的cassandra.yaml设置。尝试将其设置为127.0.0.1