【发布时间】:2020-04-11 01:56:57
【问题描述】:
我正在尝试使用 VM 的外部 IP 在 Google Cloud 上运行 Cassandra。但我收到错误Failed to bind port 9042 on 34.89.109.98。据我所知,我已遵循设置防火墙规则的规则,但我仍然无法解决问题。我附上了我的配置图片供您参考。
1) 防火墙规则是
2) 所有规则的列表是
3) 虚拟机是
更多信息
我按照https://linuxize.com/post/how-to-install-apache-cassandra-on-debian-9/ 中的步骤安装了 Cassandra。这会自动启动 cassandra。然后我杀死了cassandra,将cassandra.yaml文件中的IP地址更改为外部IP并再次启动它。它没有用。然后我开始使用 VPN 设置。
我发出启动 cassandra /usr/sbin/cassandra -f 的命令后的部分消息转储
INFO [main] 2019-12-18 16:09:40,755 StorageService.java:1521 - JOINING: Finish joining ring
INFO [main] 2019-12-18 16:09:40,826 StorageService.java:2442 - Node localhost/127.0.0.1 state jump to NORMAL
INFO [main] 2019-12-18 16:09:41,027 NativeTransportService.java:68 - Netty using native Epoll event loop
INFO [main] 2019-12-18 16:09:41,071 Server.java:158 - Using Netty Version: [netty-buffer=netty-buffer-4.0.44.Final
.452812a, netty-codec=netty-codec-4.0.44.Final.452812a, netty-codec-haproxy=netty-codec-haproxy-4.0.44.Final.452812
a, netty-codec-http=netty-codec-http-4.0.44.Final.452812a, netty-codec-socks=netty-codec-socks-4.0.44.Final.452812a
, netty-common=netty-common-4.0.44.Final.452812a, netty-handler=netty-handler-4.0.44.Final.452812a, netty-tcnative=
netty-tcnative-1.1.33.Fork26.142ecbb, netty-transport=netty-transport-4.0.44.Final.452812a, netty-transport-native-
epoll=netty-transport-native-epoll-4.0.44.Final.452812a, netty-transport-rxtx=netty-transport-rxtx-4.0.44.Final.452
812a, netty-transport-sctp=netty-transport-sctp-4.0.44.Final.452812a, netty-transport-udt=netty-transport-udt-4.0.4
4.Final.452812a]
INFO [main] 2019-12-18 16:09:41,071 Server.java:159 - Starting listening for CQL clients on /35.197.238.136:9042 (
unencrypted)...
Exception (java.lang.IllegalStateException) encountered during startup: Failed to bind port 9042 on 35.197.238.136.
java.lang.IllegalStateException: Failed to bind port 9042 on 35.197.238.136.
at org.apache.cassandra.transport.Server.start(Server.java:163)
at java.util.Collections$SingletonSet.forEach(Collections.java:4769)
at org.apache.cassandra.service.NativeTransportService.start(NativeTransportService.java:124)
at org.apache.cassandra.service.CassandraDaemon.startNativeTransport(CassandraDaemon.java:696)
at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:546)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:635)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:742)
ERROR [main] 2019-12-18 16:09:41,100 CassandraDaemon.java:759 - Exception encountered during startup
java.lang.IllegalStateException: Failed to bind port 9042 on 35.197.238.136.
at org.apache.cassandra.transport.Server.start(Server.java:163) ~[apache-cassandra-3.11.5.jar:3.11.5]
at java.util.Collections$SingletonSet.forEach(Collections.java:4769) ~[na:1.8.0_232]
at org.apache.cassandra.service.NativeTransportService.start(NativeTransportService.java:124) ~[apache-cass
andra-3.11.5.jar:3.11.5]
at org.apache.cassandra.service.CassandraDaemon.startNativeTransport(CassandraDaemon.java:696) [apache-cass
andra-3.11.5.jar:3.11.5]
at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java:546) [apache-cassandra-3.11.5.ja
r:3.11.5]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:635) [apache-cassandra-3.11.5
.jar:3.11.5]
【问题讨论】:
-
我听说错误消息是“无法在 34.89.109.98 上绑定端口 9042”。你能详细说明一下吗?消息在哪里发出?是否发布了任何堆栈驱动程序日志记录?你有没有遵循安装 Cassandra 的方法?
-
我有一种直觉......这是疯狂的猜测......您可能已将软件安装配置为使用 34.xxx IP 地址,因为您的逻辑说“那是我的公共 IP,我只希望我的数据库响应该 IP”。如果是,那么这很可能是错误。您的 Compute Engine 没有与该公共 IP 的接口……只有它的 VPC 接口。
-
更新了问题。 IP 是我的计算机的公共 IP/接口。我在安装 cassandra 时没有指定它。 cassandra.yaml 中的 IP 是
35.197.238.136,它现在是我计算机的新 IP。我得到了新的 IP,因为我重新启动了机器。新错误是java.lang.IllegalStateException: Failed to bind port 9042 on 35.197.238.136,我认为这表明34...ip 没有在任何地方硬编码
标签: google-cloud-platform cassandra-3.0