我应该在cassandra.yaml中为listen_address使用什么地址?

时间:2015-09-21 07:40:54

标签: cassandra

我正在尝试在两台不同的机器上设置多节点cassandra数据库。 我该怎么配置cassandra.yaml文件? 数据存储文档说

  

listen_address¶   (默认值:localhost)其他Cassandra节点用于连接此节点的IP地址或主机名。如果未设置,则主机名必须使用/ etc / hostname,/ etc / hosts或DNS解析为此节点的IP地址。不要指定0.0.0.0。

当我使用'localhost'作为listen_address的值时,它在本地机器上运行正常,当我使用我的IP地址时,它无法连接。为什么这样?

1 个答案:

答案 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