2014-10-17 145 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