我正在尝试在单个Windows机器上设置3节点Cassandra集群。这仅用于测试目的。
第1步 我通过hosts文件修改如下 127.0.0.1 node1 127.0.0.1 node2 127.0.0.1 node3
第2步 在C:\ Cassandra上安装了Datastax Cassandra(这是节点1) C:\ Cassandra \ node2(节点2) C:\ Cassandra \ node3(节点3)
第3步 更改了所有3个节点的Cassandra.yaml文件 群集名:DevCluster
节点1: -seed:node1 初始标记:0 listen_address:node1 rpc_address:node1
节点2: -seed:node1 初始令牌:手动生成的号码 listen_address:node2 rpc_address:node2
节点3: -seed:node1 初始令牌:手动生成的号码 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更改为其他数字以避免端口冲突。我正在尝试组建一个群集......但是遇到了这个错误。
如果有人可以指导,我会搞砸的话,我真的很感激。谢谢你的回复。
答案 0 :(得分: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)同时在同一个界面上。