【发布时间】:2017-08-30 22:46:51
【问题描述】:
我需要为我的公司搭建一个Cassandra集群,我使用的是官网下载的apache-cassandra-2.1.12-bin.tar.gz。
我有三台机器:
192.168.0.210;
192.168.0.209;
192.168.0.208;
我为每一个都更改了 cassandra.yaml。
Step1:在 192.168.0.210:
listen_address: 192.168.0.210
seeds: 192.168.0.210
第二步:在 192.168.0.209:
listen_address: 192.168.0.209
seeds: 192.168.0.210
Step3:在 192.168.0.208:
listen_address: 192.168.0.208
seeds: 192.168.0.210
我在网上搜了一下,有的人也改了rpc_address,有的人没有。当我将 rpc_address 更改为 0.0.0.0,然后运行 ./cassandra 时,它显示:
Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException:
If rpc_address is set to a wildcard address (0.0.0.0), then you must set
broadcast_rpc_address to a value other than 0.0.0.0
所以我把broadcast_rpc_address改成1.2.3.4,然后运行./cassandra,它显示了
ERROR 05:49:42 Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: Invalid yaml
at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:120) ~[apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84) ~[apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:161) ~[apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:136) ~[apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:168) [apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562) [apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:651) [apache-cassandra-2.1.12.jar:2.1.12]
Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping; expected <block end>, but found BlockMappingStart; in 'reader', line 455, column 2:
broadcast_rpc_address: 1.2.3.4
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481) ~[snakeyaml-1.11.jar:na]
at org.yaml.snakeyaml.Yaml.load(Yaml.java:412) ~[snakeyaml-1.11.jar:na]
at org.apache.cassandra.config.YamlConfigurationLoader.logConfig(YamlConfigurationLoader.java:126) ~[apache-cassandra-2.1.12.jar:2.1.12]
at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:104) ~[apache-cassandra-2.1.12.jar:2.1.12]
... 6 common frames omitted
Invalid yaml
Fatal configuration error; unable to start. See log for stacktrace.
所以我的问题:
1.我需要更改 rpc_address(有些人会,有些人不会)吗?
2.如果是,如何处理broadcast_rpc_address?
3. 除了rpc_address/broadcast_rpc_address,构建cassandra集群还需要做什么?
【问题讨论】:
-
好的,经过两个小时的研究,我做到了。因为到目前为止没有人回答这个问题。我将展示我的方法,只需按照以下说明操作:blog.powerupcloud.com/2016/01/10/…
-
引起:org.yaml.snakeyaml.parser.ParserException:解析块映射时;预期
,但找到 BlockMappingStart;在'reader',第455行,第2列:broadcast_rpc_address:1.2.3.4 要解决这个问题,您需要在您更改的参数前输入两个空格以统一格式。我不知道原因,但这种方法有效。 -
为什么不将 rpc_address 设置为与 listen_address 相同的值?
标签: cassandra