远程连接到单个节点cassandra clustor(在ec2示例上)

t5fffqht  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(303)

我在一个中型ubuntuec2示例上运行一个单节点cassandra集群。在对cassandra.yaml进行任何更改之前,我可以使用 cqlsh ,
还有跑步 netstat -ltn 日志:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:38807 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:35835 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:7199 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9160 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:9042 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN 检查cassandra服务状态显示它处于活动状态(正在运行)
正在尝试使用远程连接到示例 cqlsh <instance public IP> 超时,我假设这是因为它没有监听示例公共ip上的客户机。
到目前为止我已经累了:
改变 listen_address 到我的私有示例ip
设置 start_rpc:true , rpc_address 到我的私人ip和 broadcast_address 到我的公共ip
设置 rpc_address 到0.0.0.0和 broadcast_rpc_address 到我的公共ip
注:我保留 seeds: "127.0.0.1" 因为我没有其他种子或节点。
进行上述任何更改后,我将无法使用访问cassandra cqlsh 或者 cqlsh <public IP> 本地(和远程仍然没有连接),即使在示例终端本身和我会得到我的连接被拒绝。也, netstat -ltn 现在日志: Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:38807 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN cassandra服务状态显示为active(exited)
我希望能够远程连接到该示例,但是在对cassandra.yaml进行任何更改时,我将无法再连接到它,即使是在本地。
另外,我在示例上设置了端口80、22、9042和7000的安全组。
你知道为什么会这样吗?或者我该怎么解决?

taor4pac

taor4pac1#

对于同时具有私有和公共ip地址的节点,只需设置:

listen_address: private_ip
rpc_address: public_ip

你只需要设置 broadcast_address 如果在另一个区域中有节点,则连接到节点的公共ip,这样节点就可以通过ec2上的wan相互通信。这意味着您需要回滚配置的所有其他属性。
这个 listen_address 用于节点间通信(在端口上) 7000 )这就是为什么它被设置为私有ip。
应用程序/客户端( cqlsh 只是另一个客户端)连接到 rpc_address 因此,它需要设置为一个可公开访问的ip。
我最近在这篇文章中回答了一个类似的问题https://community.datastax.com/questions/8867/ 如果你对细节感兴趣的话。干杯!

相关问题