我已经安装了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.
感谢您的帮助!
答案 0 :(得分:1)
start_native_transport: true
应该在cassandra.yaml中,如果它不存在那么你应该将它添加到cassandra.yaml并在重新启动Cassandra服务器后尝试
答案 1 :(得分:1)
您使用的是什么版本的Cassandra? DevCenter支持Cassandra版本&gt; = 1.2
如果您仍然看到cassandra.yaml中的更改错误,您可以发布指向Gist的链接。但YAML格式非常简单,所以我想你会弄清楚。
如果您阅读了我的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