0

我正在尝试在单个 Windows 机器上设置一个 3 节点 Cassandra 集群。这仅用于测试目的。

步骤 1 我通过 hosts 文件修改如下 127.0.0.1 node1 127.0.0.1 node2 127.0.0.1 node3

第 2 步在 C:\Cassandra(这是节点 1)C:\Cassandra\node2(节点 2)C:\Cassandra\node3(节点 3)上安装 Datastax Cassandra

步骤 3 更改所有 3 个节点 cluster_name:DevCluster 的 Cassandra.yaml 文件

节点 1:-seed:节点 1 初始令牌:0 监听地址:节点 1 rpc_地址:节点 1

node2:-seed:node1初始token:手动生成号listen_address:node2 rpc_address:node2

node3:-seed:node1初始token:手动生成号listen_address:node3 rpc_address:node3

我能够启动 Cassandra.bat 文件来运行该服务,但问题是在任何时候我都只能启动一个服务(任何节点),另一个服务关闭并显示错误消息

ERROR [NonPeriodicTasks:1] 2014-04-08 08:59:09,861 StorageService.java (line 364) Stopping gossiper
  WARN [NonPeriodicTasks:1] 2014-04-08 08:59:09,861 StorageService.java (line 278) Stopping gossip by operator request
  INFO [CompactionExecutor:4] 2014-04-08 08:59:09,861 CompactionTask.java (line 275) Compacted 4 sstables to [C:\Cassandra\data\data\system\schema_keyspaces\system-schema_keyspaces-jb-20,].  651 bytes to 260 (~39% of original) in 706ms = 0.000351MB/s.  6 total partitions merged to 3.  Partition merge counts were {1:2, 4:1, }
 ERROR [NonPeriodicTasks:1] 2014-04-08 08:59:09,861 CassandraDaemon.java (line 196) Exception in thread Thread[NonPeriodicTasks:1,5,main]

ERROR [main] 2014-04-08 08:59:10,220 CassandraDaemon.java (line 357) Fatal configuration error
 org.apache.cassandra.exceptions.ConfigurationException: node1/127.0.0.1:7000 is in use by another process.  Change listen_address:storage_port in cassandra.yaml to values that do not conflict with other services
INFO [StorageServiceShutdownHook] 2014-04-08 08:59:10,220 Gossiper.java (line 1251) Announcing shutdown
  INFO [StorageServiceShutdownHook] 2014-04-08 08:59:12,220 MessagingService.java (line 667) Waiting for messaging service to quiesce

此外,根据日志消息,我将 storage_port、tcp_port 和 JMX_port 更改为不同的数字以避免端口冲突。我正在尝试形成一个集群......但遇到了这个错误。

如果有人可以指导我在搞砸什么,我将不胜感激。感谢您的答复。

4

1 回答 1

0

请参阅此相关问题:Run multiple cassandra nodes (a cluster) from the same machine?

它有一个Linux 解决方案的链接,该解决方案依赖于定义多个本地主机IP 地址(即127.0.0.N ,其中N >1)。如果您可以为同一台机器配置多个 IP 地址,则可能会出现类似的情况。

简而言之,Cassandra 目前期望整个集群的端口配置是同质的,因此分配唯一的端口号不会产生一个工作集群。这也是为什么您只能启动一个节点的原因,因为您的主机别名(node1、node2 等)仍然映射到相同的 IP 地址,因此也映射到相同的网络接口——并且两个进程无法绑定到相同的 TCP 端口( s) 一次在同一个界面上。

于 2014-04-26T04:59:50.520 回答