我应该在 cassandra.yaml 中为 listen_address 使用啥地址?
Posted
技术标签:
【中文标题】我应该在 cassandra.yaml 中为 listen_address 使用啥地址?【英文标题】:What address should i use for listen_address in cassandra.yaml ?我应该在 cassandra.yaml 中为 listen_address 使用什么地址? 【发布时间】:2015-09-21 07:40:53 【问题描述】:我正在尝试在两台不同的机器上设置一个多节点 cassandra 数据库。 我应该如何配置 cassandra.yaml 文件? datastax 文档说
监听地址¶ (默认值:localhost)其他 Cassandra 节点用于连接到该节点的 IP 地址或主机名。如果未设置,则主机名必须使用 /etc/hostname、/etc/hosts 或 DNS 解析为此节点的 IP 地址。不要指定 0.0.0.0。
当我使用'localhost'作为listen_address的值时,它在本地机器上运行良好,当我使用我的IP地址时,它无法连接。为什么会这样?
【问题讨论】:
我猜,原因之一是在我的seeds
中,没有一个条目对应于我的 IP 地址(我在 listen_address
中提到过)。我将 127.0.0.1 替换为 在 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。
【讨论】:
以上是关于我应该在 cassandra.yaml 中为 listen_address 使用啥地址?的主要内容,如果未能解决你的问题,请参考以下文章
在Cassandra中加载cassandra.yaml之外的其他配置文件
如果在 cassandra.yaml 中启用了 auto_snapshot,那么这些快照啥时候会被删除