DataStax Devcenter无法连接到远程cassandra db

时间:2014-06-06 16:31:34

标签: cassandra datastax datastax-java-driver

我已经安装了DataStax cassandra,它已在我的远程计算机上启动并运行。现在我尝试通过DataStax Devcenter连接,但它失败了。

在发布此问题之前,我已在此处阅读相同内容:DataStax Devcenter fails to connect to the remote cassandra database

我转到了cassandra.yaml conf文件,但start_native_transport: true选项不在我的文件中。我应该在哪里寻找它? 我还将rpc_address更改为:0.0.0.0。

更新:

如果我将start_native_transport: true添加到我的cassandra.yaml中,它就会在Cassandra重新启动时崩溃。请参考下面的日志:

ERROR 17:48:32,626 Fatal configuration error error
Can't construct a java object for tag:yaml.org,2002:org.apache.cassandra.config.Config; exception=Cannot create property=start_native_transport for JavaBean=org.apache.cassandra.config.Config@ef28a30; Unable to find property 'start_native_transport' on class: org.apache.cassandra.config.Config
 in "<reader>", line 10, column 1:
    cluster_name: 'Test Cluster'
    ^

        at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:372)
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:177)
        at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:136)
        at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:122)
        at org.yaml.snakeyaml.Loader.load(Loader.java:52)
        at org.yaml.snakeyaml.Yaml.load(Yaml.java:166)
        at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:141)
        at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:116)
        at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:124)
        at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:389)
        at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:107)
Caused by: org.yaml.snakeyaml.error.YAMLException: Cannot create property=start_native_transport for JavaBean=org.apache.cassandra.config.Config@ef28a30; Unable to find property 'start_native_transport' on class: org.apache.cassandra.config.Config
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:305)
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:184)
        at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:370)
        ... 10 more
Caused by: org.yaml.snakeyaml.error.YAMLException: Unable to find property 'start_native_transport' on class: org.apache.cassandra.config.Config
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.getProperty(Constructor.java:342)
        at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:240)
        ... 12 more
null; Can't construct a java object for tag:yaml.org,2002:org.apache.cassandra.config.Config; exception=Cannot create property=start_native_transport for JavaBean=org.apache.cassandra.config.Config@ef28a30; Unable to find property 'start_native_transport' on class: org.apache.cassandra.config.Config
Invalid yaml; unable to start server.  See log for stacktrace.

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

start_native_transport: true

应该在cassandra.yaml中,如果它不存在那么你应该将它添加到cassandra.yaml并在重新启动Cassandra服务器后尝试

答案 1 :(得分:1)

  1. 您使用的是什么版本的Cassandra? DevCenter支持Cassandra版本&gt; = 1.2

  2. 如果您仍然看到cassandra.yaml中的更改错误,您可以发布指向Gist的链接。但YAML格式非常简单,所以我想你会弄清楚。

  3. 如果您阅读了我的previous answer,您会发现需要将rpc_address设置为不同值,而不是0.0.0.0 。无论如何,最新版本的DevCenter(1.1.1)即使集群中的所有节点都将rpc_address设置为0.0.0.0也是可行的(作为旁注,我不会认为&#39;通常是一个很好的环境。)

答案 2 :(得分:1)

DevCenter.ini没有java VM信息。 添加以下VM信息有助于解决连接问题。

-vm
C:\Program Files (x86)\JDK64\1.8.0.74\jre\bin\java.exe

注意:上面的行表示来自JRE版本的适当的java.exe