我正在尝试将我的应用程序部署到服务器(RedHat Linux 6.5) . 作为一个节点集群和Java应用程序的Cassandra应该在同一台服务器上 . 我有问题连接java客户端与cassandra,因为它总是触发异常NoHostAvailable:

16:03:55,274 | -INFO in ch.qos.logback.classic.joran.JoranConfigurator@25a65b77 - 将当前配置注册为安全回退点SLF4J:实际绑定的类型为[ch.qos.logback.classic.util.ContextSelectorStaticBinder ]测试运行:1,失败:0,错误:1,跳过:0,时间过去:13.512秒<<<失败! - 在org.au.morph.bigdata.offline.cassandra.SimpleConnectorTest testConnection(org.au.morph.bigdata.offline.cassandra.SimpleConnectorTest)经过的时间:13.511秒<<<错误! com.datastax.driver.core.exceptions.NoHostAvailableException:尝试查询的所有主机都失败了(尝试:/127.0.0.1:9042(com.datastax.driver.core.exceptions.ReadTimeoutException:读取查询时的Cassandra超时一致性) ONE(需要1个响应但只有0个副本响应)))com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:231)com.datastax.driver.core.ControlConnection.connect(ControlConnection.java: 77)位于or.d.au.morph.bigdata的com.datastax.driver.core.Cluster $ Manager.init(Cluster.java:1414)at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:393)位于org.au.morph.bigdata.offline.cassandra的org.au.morph.bigdata.offline.cassandra.SimpleClientImpl . (SimpleClientImpl.java:25)的.offline.cassandra.SimpleClientImpl.connect(SimpleClientImpl.java:65) . SimpleConnectorTest.testConnection(SimpleConnectorTest.java:22)结果:错误测试:SimpleConnectorTest.testConnection:22»NoHostAvailable所有主机都试过......

如果我在本地Ubuntu机器上运行它,这可以正常工作 . 我还尝试将本地应用程序与Amazon EC2实例上的远程Cassandra DB或本地Cassandra实例连接,一切正常 . 但是,RedHat服务器上具有相同cassandra yaml设置的相同应用程序将无法以本地模式连接 . 我可以使用cqlsh连接,然后我在9042上telnet,所以我认为没有阻塞端口的东西 .

我尝试使用不同版本的Cassandra(Apache Cassandra 3.3和3.7以及DataStax Distribution 3.7) . 由于我的RedHat实例无法访问yum存储库,因此我使用的是二进制tarball分发 .

我的cassandra.yaml设置如下,但我也尝试了这些设置的不同替代方案,没有任何帮助:

listen_address: 127.0.0.1  
start_native_transport: true
native_transport_port: 9042 
start_rpc: true 
rpc_address: localhost
rpc_port: 9160

我希望有人能给我一个如何调查这个问题的想法 .