我在连接Centos 7时有一些困难。
我能够成功地在Centos Shell内部本地连接,并且nodeool状态显示集群Up和Normal。
我在卡桑德拉试过的东西。Yaml文件-
- 将listen_address参数从localhost修改为服务器的IP地址。结果→DSE未启动
- 注释了listen_address行。结果→DSE未启动
- listen_address参数留空。结果→DSE未启动
如上所述操作系统- CentOS 7DSE版本- 6.8安装方法RPM
Python程序-
#cluster = Cluster()
cluster = Cluster(['192.168.1.223'])
# To establish connection and begin executing queries, need a session
session = cluster.connect()
row = session.execute("select release_version from system.local;").one()
if row:
print(row[0])
else:
print("An error occurred.")
python抛出异常->
NoHostAvailable: ('Unable to connect to any servers', {'192.168.1.223:9042': ConnectionRefusedError(10061, "Tried connecting to [('192.168.1.223', 9042)]. Last error: No connection could be made because the target machine actively refused it")})
我的电脑和服务器都在同一个网络上,我可以互相ping通。
任何帮助都非常感谢。
感谢同样的问题在https://community.datastax.com/questions/12174/上被问到,所以我在这里重新发布我的答案。
此错误指示您正在连接的节点没有侦听IP192.168.1.223
和CQL端口9042
上的CQL连接:
No connection could be made because the target machine actively refused it
两个最可能的原因是:
- DSE未运行
- DSE未监听正确IP上的客户端连接
您已经指出无法启动DSE。您需要查看默认情况下位于/var/log/cassandra
中的日志,以了解为什么它没有运行。
另一个可能的问题是你没有配置native_transport_address
(rpc_address
在开源Cassandra)。你需要将其设置为客户端(你的应用程序)可访问的IP地址,否则,它将默认为localhost
(127.0.0.1
)。
在cassandra.yaml
中,配置节点:
listen_address: private_ip
native_transport_address: public_ip
如果您只是在本地网络上进行测试,则将两个属性设置为服务器的IP地址。干杯!
[编辑]我刚看到你和@Alex Ott的对话。我把我的回答贴在这里,因为它不适合评论。
这个启动错误意味着该节点无法与任何种子节点通信,因此它将无法加入集群:
ERROR [DSE main thread] 2021-08-25 06:40:11,413 CassandraDaemon.java:932 -
Exception encountered during startup
java.lang.RuntimeException: Unable to gossip with any peers
如果集群中只有1个节点,在cassandra.yaml
中配置seeds
列表,使用服务器自己的IP地址:
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "192.168.1.223"