在一台计算机上运行多个Cassandra实例



这是我第二次尝试在计算机上设置一个3节点的Cassandra群集。我无法启动第一个实例。在启动期间,我得到

Exception encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Invalid yaml: file:/home/user1/TestCluster/node1/dsc-cassandra-2.2.8/conf/cassandra.yaml

和很多线条我无法理解任何有意义的行(我看不出为什么YAML无效)。

我的方法包括以下步骤:

  1. i将TARBALL安装解压缩到3个文件夹中(我想要3个实例)。

  2. 在每个cassandra.yaml中:

    • cluster_name设置了
    • seeds:" 127.0.0.2"(所有节点相同)
    • rpc_address, listen_address设置为所有节点的127.0.0.2-4
    • rpc_port设置(9160,9161,9162)
    • data_file_directoriescommitlog_directoriessaved_caches_directory已设置为所有
  3. 在每个cassandra-env.sh中,JMX_PORT设置了(8081,8082,8083)

etc/hosts被编辑,以便127.2-4是127.0.0.1

的别名

我的问题是:我在做什么错?如何修复?在Ubuntu上还有其他简单的方法吗?

我包括错误,这是任何有意义的。如果占用太多空间,将删除。

ERROR 12:19:12 Exception encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Invalid yaml: file:/home/user1/TestCluster/node1/dsc-cassandra-2.2.8/conf/cassandra.yaml
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:118) ~[apache-cassandra-2.2.8.jar:2.2.8]
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:85) ~[apache-cassandra-2.2.8.jar:2.2.8]
    at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:135) ~[apache-cassandra-2.2.8.jar:2.2.8]
    at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:119) ~[apache-cassandra-2.2.8.jar:2.2.8]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:507) [apache-cassandra-2.2.8.jar:2.2.8]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:641) [apache-cassandra-2.2.8.jar:2.2.8]
Caused by: org.yaml.snakeyaml.constructor.ConstructorException: null; Can't construct a java object for tag:yaml.org,2002:org.apache.cassandra.config.Config; exception=Cannot create property=data_file_directories for JavaBean=org.apache.cassandra.config.Config@24a35978; No single argument constructor found for class [Ljava.lang.String;;  in 'reader', line 10, column 1:
    cluster_name: 'Testcluster'
    ^
    at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:333) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:141) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:127) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:475) ~[snakeyaml-1.11.jar:na]
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:111) ~[apache-cassandra-2.2.8.jar:2.2.8]
    ... 5 common frames omitted
Caused by: org.yaml.snakeyaml.error.YAMLException: Cannot create property=data_file_directories for JavaBean=org.apache.cassandra.config.Config@24a35978; No single argument constructor found for class [Ljava.lang.String;
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:299) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:189) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:331) ~[snakeyaml-1.11.jar:na]
    ... 11 common frames omitted
Caused by: org.yaml.snakeyaml.error.YAMLException: No single argument constructor found for class [Ljava.lang.String;
    at org.yaml.snakeyaml.constructor.Constructor$ConstructScalar.construct(Constructor.java:379) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182) ~[snakeyaml-1.11.jar:na]
    at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:296) ~[snakeyaml-1.11.jar:na]
    ... 13 common frames omitted

如果严格用于本地机器的测试目的,我只会使用CCM。

https://github.com/pcmanus/ccm

看来您的合伙化是正确的,我已经完成了您所描述的工作,并且可以正常工作。问题似乎是您在cassandra.yaml文件中有某种错误。请检查行:

data_file_directories:
    - /var/lib/cassandra/data

当它像这样(两行)时,它起作用,当您将其放入一行时,它会从您的帖子中丢弃错误。

最新更新