无法使用公共IP启动Cassandra服务器(端口7000错误)

时间:2019-09-10 04:57:46

标签: cassandra datastax

我正在centos 6.8上安装cassandra服务器并更改为公共IP 通过使用https://stackoverflow.com/a/17164723/10206109方法,但是用cassandra -f -R启动服务器时卡住了,我得到了这个错误:

ERROR [main] 2019-09-10 11:42:31,684 CassandraDaemon.java:749 - Fatal 
configuration error
org.apache.cassandra.exceptions.ConfigurationException: Unable to bind to 
address /<public ip>:7000. Set listen_address in cassandra.yaml to an 
interface you can bind to, e.g., your private IP address on EC2
    at org.apache.cassandra.net.MessagingService.getServerSockets(MessagingService.java:739) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:681) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:665) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:796) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:683) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.StorageService.initServer(StorageService.java:632) ~[apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:388) [apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:620) [apache-cassandra-3.11.4.jar:3.11.4]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:732) [apache-cassandra-3.11.4.jar:3.11.4]

我尝试更改/cassandra.yaml

rpc_address: 0.0.0.0
listen_address: <public ip>
broadcast_rpc_address: <public ip>

但是它仍然停留在这一点

1 个答案:

答案 0 :(得分:0)

rpc_addressbroadcast_rpc_address是客户端的地址,但是您需要配置节点间通信。

DataStax documentation says(与OSS Cassandra相同):

  
      
  1. cassandra.yaml中,将listen_address设置为节点的私有IP地址,并将broadcast_address设置为公共节点的IP地址。这允许一个EC2区域中的DataStax Enterprise节点绑定到另一区域中的节点,从而实现对多个数据中心的支持。对于区域内流量,DataStax Enterprise在建立连接后会切换到专用IP。

  2.   
  3. cassandra.yaml文件中种子节点的地址设置为公共IP 的地址。 私有IP在网络之间不可路由。例如:

  4.