我想在Amazon EC2实例上运行Cassandra Datastax Enterprise,而不是使用节点专用IP地址,而是使用弹性公共IP
我目前的配置如下:
/etc/dse/cassandra/cassandra.yaml seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: seeds: "publicIP" listen_address: "publicIP" endpoint_snitch:Ec2Snitch rpc_address: "publicIP"
"dse"服务无法正常启动.
/var/log/cassandra/system.log显示以下错误:
org.apache.cassandra.exceptions.ConfigurationException: Unable to bind to address /
:7000. Set listen_address in cassandra.yaml to an interface you can bind to, e.g., your private IP address on EC2
我还尝试将broadcast_address更改为指向公共IP地址,但它不起作用.
有没有办法以某种方式运行dse服务(Cassandra),它使用弹性IP地址而不是EC2盒的私有IP?
侦听地址 - 这是其他Cassandra节点将用于与此节点通信的IP地址.您希望这是性能的内部AWS IP地址.
RPC地址 - 这是您的客户端连接到的地址,如果您的客户端不在AWS或同一AWS区域中,则可能是您要配置以匹配外部AWS地址的地址.
广播地址 - 如果您使用多个数据中心或AWS区域,则并非所有节点都可以通过内部IP相互访问.您可以为不同数据中心中的节点指定外部IP地址,但仍可以相互通信.在许多情况下,您根本不需要此设置,它将默认为您的监听地址.
我认为您的问题的答案是使用RPC地址使用外部/弹性AWS IP从您的客户端连接到C*.您可以保留未配置的广播地址.
这有帮助吗?
这里不是一个新问题,但查看您的配置,进行这些更改.
listen_address: private_ip broadcast_address: public_ip rpc_address: 0.0.0.0
种子应该是public_ip,所以你可以在那里.