我正在使用带有4个节点的cassandra 1.2.15群集,并且在简单网络拓扑中具有复制为2的密钥空间。我正在使用Murmur3Partitioner。我使用了yaml文件中提供的默认配置。第一个节点是种子节点,其他3个节点将第一个节点指向种子节点。
第一个节点yaml配置是
initial_token: left empty
num_tokens: 256
auto_bootstrap: false
其他3个节点yaml配置
initial_token: left empty
num_tokens: 256
auto_bootstrap: true
我有三个问题,我的主要问题是Question1,
问题1:
问题2:
问题3:
答案 0 :(得分:3)
Q1我需要查询群集上的特定节点。 (即)在四节点集群中,我需要进行查询,以便仅为节点2选择列族中的所有行。这可能吗?如果是,如何进行?
不,不可能。您可以使用LOCAL_QUORUM
或EACH_QUORUM
consistency levels查询特定数据中心。或者,您可以连接到特定节点并查询特定于每个节点的system
KS(通过在cqlsh或驱动程序中指定地址)。有时候这可能有用,但它并不是你所追求的。
Q2对于上述方法,我的yaml配置是否正确? 在1.2中我认为为你的初始节点填充你自己的令牌而不是将它留给C *可能是一个更好的主意。 对于
auto_bootstrap
,false是新群集节点的正确选择:
此设置已从默认配置中删除。它使新的(非种子)
节点自动将正确的数据迁移到自己。初始化时
没有数据的新集群,添加auto_bootstrap:false。
Q3如果我在群集中添加两个节点,此配置将来是否会出现问题?
我建议您放弃简单的网络拓扑,因为它会使扩展到多个数据中心的过程变得复杂。要记住的另一个细节是为新节点启用自动引导程序,它应该与v节点完美配合。