Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 构建卡桑德拉集群_Cassandra - Fatal编程技术网

Cassandra 构建卡桑德拉集群

Cassandra 构建卡桑德拉集群,cassandra,Cassandra,我需要为我的公司构建一个Cassandra集群,我使用apache-Cassandra-2.1.12-bin.tar.gz从官方网站下载 我有三台机器: 192.168.0.210 192.168.0.209 192.168.0.208 我为每个人都换了卡桑德拉·亚马尔 步骤1:在192.168.0.210上: listen_address: 192.168.0.210 seeds: 192.168.0.210 步骤2:在192.168.0.209上: listen

我需要为我的公司构建一个Cassandra集群,我使用apache-Cassandra-2.1.12-bin.tar.gz从官方网站下载

我有三台机器:

192.168.0.210

192.168.0.209

192.168.0.208

我为每个人都换了卡桑德拉·亚马尔

步骤1:在192.168.0.210上:

   listen_address: 192.168.0.210  

   seeds: 192.168.0.210  
步骤2:在192.168.0.209上:

   listen_address: 192.168.0.209

   seeds: 192.168.0.210
步骤3:在192.168.0.208上:

   listen_address: 192.168.0.208

   seeds: 192.168.0.210   
我在网上搜索,有些人也更改了rpc_地址,而有些人没有。当我将rpc_地址更改为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     
所以我把广播地址改为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.
错误05:49:42严重配置错误
org.apache.cassandra.exceptions.ConfigurationException:无效的yaml
在org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:120)~[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84)~[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:161)~[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.config.DatabaseDescriptor.(DatabaseDescriptor.java:136)~[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.service.cassandrademon.setup(cassandrademon.java:168)[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.service.cassandrademon.activate(cassandrademon.java:562)[apache-cassandra-2.1.12.jar:2.1.12]
在org.apache.cassandra.service.cassandrademon.main(cassandrademon.java:651)[apache-cassandra-2.1.12.jar:2.1.12]

原因:org.yaml.snakeyaml.parser.ParserException:解析块映射时;应为,但找到BlockMappingStart;在“阅读器”第455行第2列: 广播地址:1.2.3.4 ^ 在org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.product(ParserImpl.java:570)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.composer.composeMappingNode(composer.java:230)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.composer.composeNode(composer.java:159)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.composer.composer.composeDocument(composer.java:122)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.composer.composer.getSingleNode(composer.java:105)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.yaml.loadFromReader(yaml.java:481)~[snakeyaml-1.11.jar:na] 在org.yaml.snakeyaml.yaml.load(yaml.java:412)~[snakeyaml-1.11.jar:na] 在org.apache.cassandra.config.YamlConfigurationLoader.logConfig(YamlConfigurationLoader.java:126)~[apache-cassandra-2.1.12.jar:2.1.12] 在org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:104)~[apache-cassandra-2.1.12.jar:2.1.12] ... 省略了6个公共框架 无效yaml 致命的配置错误;无法启动。有关stacktrace,请参阅日志。
所以我的问题是:

1.我是否需要更改rpc_地址(有些人需要,而有些人不需要)?
2.如果是,如何处理广播\u rpc\u地址?

3.除了rpc_地址/广播rpc_地址,我还需要做什么来构建cassandra群集?

对于rpc_地址,请尝试使用:

rpc_地址:localhost

以下是您的问题的答案:

1.我是否需要更改rpc_地址(有些人需要,而有些人不需要)? 不需要,除非您希望客户端连接到不同的IP地址,而不是服务器的实际IP地址,例如SQL server别名等。 2.如果是,如何处理广播地址? 广播我认为应该是公共IP作为广播地址,或者说是0.0.0.0

  • 除了rpc_address/broadcast_rpc_address之外,构建cassandra集群还需要做什么?确保所有节点的群集名称相同,并且对于第一次设置群集的第一个节点,种子与侦听IP相同,然后种子所在的第二个节点是第一个节点,依此类推

  • rpc_address是将Thrift rpc服务和本机传输服务器绑定到的地址或接口。你可以留白。Cassandra将使用节点的主机名。不建议设置为0.0.0.0,除非节点受到防火墙等保护。否则,任何人都可以访问卡桑德拉

    broadcast_rpc_address是要广播到驱动程序和其他Cassandra节点的rpc地址。这不能设置为0.0.0.0。驱动程序需要有效的IP地址来发送请求。如果将rpc_地址设置为0.0.0.0,则应将广播_rpc_地址设置为节点的IP。在您的示例中,192.168.0.208、192.168.0.209或192.168.0.210


    对于3,您只需要将所有节点上的群集名称设置为相同。

    好的,在另外两个小时的研究之后,我做到了。因为到目前为止还没有人回答这个问题。我将演示如何执行此操作,只需遵循以下说明:由以下原因引起:org.yaml.snakeyaml.parser.ParserException:解析块映射时;应为,但找到BlockMappingStart;在“reader”第455行第2列:broadcast_rpc_address:1.2.3.4中,要解决此问题,需要在更改参数以统一格式之前键入两个空格。我不知道原因,但这种方法是有效的。为什么不将rpc\u address设置为与listen\u address相同的值?