Cassandra Datastax Enterprise using Amazon Elastic IP



我想在亚马逊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 /<publicIP>: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?

这不是一个新问题,但请查看您的配置,进行这些更改。

listen_address: private_ip
broadcast_address: public_ip
rpc_address: 0.0.0.0

种子应该是public_ip,这样你就可以了。

Cassandra.yaml中有三个可用地址

  1. 侦听地址-这是其他Cassandra节点用来与该节点通信的ip地址您希望这是您的内部AWS IP地址,以提高性能

  2. RPC地址-这是您的客户端连接到的地址,如果您的客户端不在AWS或不在同一AWS区域,则可能是您想要配置为匹配外部AWS地址的地址。

  3. 广播地址-如果您使用多个数据中心或AWS区域,其中并非所有节点都可以通过内部IP相互访问。您可以为不同数据中心中的节点指定外部IP地址,这些节点仍然可以相互通信。在许多情况下,您根本不需要此设置,它将默认为您的侦听地址。

我认为你的问题的答案是使用RPC地址使用外部/弹性AWS IP从你的客户端连接到C*。您可以不配置广播地址。

这有帮助吗?

最新更新