我正在尝试在两台不同的机器上设置多节点cassandra数据库。 我该怎么配置cassandra.yaml文件? 数据存储文档说
listen_address¶ (默认值:localhost)其他Cassandra节点用于连接此节点的IP地址或主机名。如果未设置,则主机名必须使用/ etc / hostname,/ etc / hosts或DNS解析为此节点的IP地址。不要指定0.0.0.0。
当我使用'localhost'作为listen_address的值时,它在本地机器上运行正常,当我使用我的IP地址时,它无法连接。为什么这样?
答案 0 :(得分:5)
在Cassandra中配置节点和种子节点非常简单,但必须遵循某些步骤。设置多节点集群的过程很好documented,我将引用链接文档。
我认为用4而不是2来说明节点的设置比较容易,因为2个节点对正在运行的Cassandra实例没什么意义。如果在每台计算机上有2个计算机和1个种子节点之间分配4个节点,则概念配置将如下所示:
node1 86.82.155.1 (seed 1)
node2 86.82.155.2
node3 192.82.156.1 (seed 2)
node4 192.82.156.2
如果这些机器在布局方面相同,则可以在所有节点上使用相同的cassandra.yaml文件。
如果群集中的节点在磁盘布局,共享库等方面完全相同,则可以在所有节点上使用相同的cassandra.yaml文件副本
您需要在cassandra.yaml中的-seeds
配置下设置IP地址。
-seeds:每个种子节点的内部IP地址
parameters:
- seeds: "86.82.155.1,192.82.156.1"
了解节点和种子节点之间的区别非常重要。如果您获得了这些IP地址,您可能会遇到类似于您所描述的问题,并且从您的评论中可以看出您已更正了配置。
种子节点不引导,这是加入现有群集的新节点的过程。对于新集群,将跳过种子节点上的引导过程。
如果您在掌握基于节点的架构时遇到问题,请阅读Achitecture in Brief文档或观看Understanding Core Concepts class。