2014-10-17 167 views
2

我正在使用具有4个节点数的cassandra 1.2.15集群,并且在简单网络拓扑中具有复制为2的密钥空间。我正在使用Murmur3Partitioner。我已经使用yaml文件中提供的默认配置。第一个节点是种子节点,另外3个节点将第一个节点指向种子节点。Cassandra查询特定节点

第一个节点YAML配置

initial_token: left empty 
num_tokens: 256 
auto_bootstrap: false 

其他3个节点YAML配置

initial_token: left empty 
num_tokens: 256 
auto_bootstrap: true 

我有三个问题,我的主要问题是问题1,

问题1:

I need to query a specific node on the cluster. (ie) In a four node cluster I need to make a query to select all the rows in a column family for the node 2 alone.Is it possible? If yes how to proceed? 

问题2:

Whether my yaml configuration is correct or not for the above approach? 

问题3:

Whether this configuration will make any trouble in future, if I add two nodes in the cluster? 

回答

3

Q1我需要查询群集上的特定节点。 (ie)在一个四节点集群中,我需要进行一次查询,以单独为节点2选择列族中的所有行。是否有可能?如果是,如何继续?

不,不可能。您可以使用LOCAL_QUORUMEACH_QUORUMconsistency levels查询特定的数据中心。或者,您可以连接到特定的节点,并查询每个节点特有的system KS(通过在cqlsh或您的驱动程序中指定地址)。在某些情况下,这可能是有用的,但这不是你所追求的。

Q2对于上述方法,我的yaml配置是否正确? 在1.2中,我认为为您的初始节点填充令牌可能是一个更好的主意,而不是将它留给C *。 至于auto_bootstrap,假为新鲜群集节点的正确选择:

该设置已经从默认配置中删除。它使得新的(非种子)节点自动将正确的数据迁移到它们自己。在初始化没有数据的新集群时,添加auto_bootstrap:false。

Q3如果我在群集中添加两个节点,这种配置是否会在将来遇到麻烦?

我建议您不要使用简单的网络拓扑结构,因为它会扩展到多个数据中心的过程变得复杂。另一个要记住的要点是为新节点启用自动引导,并且它应该与v节点相当好地工作。

+0

感谢您的回复。我无法得到你对问题2的答案。从cassandra文档开始,如果initial_token设置为空并且num_tokens设置为256,则启用vnodes。我是否正确?所以我配置了这种方式来实现vnodes。我是否正确?或者我的理解错了?更好的想法是自己为初始节点填充令牌,而不是将其留给C *。我无法赶上你以前的发言。更好的主意意味着什么怎么样? – 2014-10-17 17:32:24