Cassandra Datastax Enterprise using Amazon Elastic IP

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

I would like to run Cassandra Datastax Enterprise on Amazon EC2 instances using not the node private IP address but Elastic Public IPs

My current configuration looks as follows:

/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" 

The "dse" service is not starting properly.

/var/log/cassandra/system.log is showing the following error:

org.apache.cassandra.exceptions.ConfigurationException: Unable to bind to address /<publicIP>:7000. Set listen_address in cassandra.yaml to an interface you can bind to, e.g., your private IP address on EC2

I have also tried to change the broadcast_address to point to the public IP address but it doesn't work.

Is there any way of running dse service (Cassandra) in a way it uses the elastic IP addresses and not the private IPs of EC2 boxes?

回答1:

Not a new question here, but looking at your config, make these changes.

listen_address: private_ip broadcast_address: public_ip rpc_address: 0.0.0.0 

Seeds should be public_ip so you're ok there.



回答2:

Three addresses avaliable in Cassandra.yaml

  1. Listen Address - This is the ip address other Cassandra nodes will use to talk to this node. You want this to be your internal AWS IP Address for performance.

  2. RPC Address - This is the address your client connects to, probably the one you want to configure to match your external AWS address if your client is not sitting in AWS or in the same AWS region.

  3. Broadcast Address - If you are using multiple data centers or AWS Regions, where not all the nodes have access to each other via internal IP. You can specify the external IP address for the nodes in different data centers can still talk to each other. In many cases you don't need this setting at all, it will default to your Listen Address.

I think the answer to your question is use the RPC address to connect to C* from your client using the external/elastic AWS IP. You can probably leave the Broadcast Address un-configured.

Does this help?



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!