2012-04-20 258 views
1

那麼我有一個節點集羣,我分爲兩個地址127.0.0.1和127.0.0.2。如果我嘗試將數據插入到127.0.0.1中,請使用Cassandra Client。數據成功獲取127.0.0.1添加,我也可以查看它,但如果我嘗試連接到從127.0.0.2查看,我看不到任何更新。沒有數據。我想我上次無法解釋它。下面是我在相同節點上將兩個cassandra複製到不同文件夾中的名稱Cassandra 1和Cassandra 2。相應地更新Cassandra.yaml。Cassandra集羣單節點

1)

cluster_name: 'Test Cluster' 
initial_token: 
data_file_directories: - /Cassandra/1/var/lib/cassandra/data 
commitlog_directory: /Cassandra/1/var/lib/cassandra/commitlog 
saved_caches_directory: /Cassandra/1/var/lib/cassandra/saved_caches 
- seeds: "127.0.0.1,127.0.0.2" 
listen_address: 127.0.0.1 
rpc_address: 127.0.0.1 

2)

cluster_name: 'Test Cluster' 
initial_token: 
data_file_directories: - /Cassandra/2/var/lib/cassandra/data 
commitlog_directory: /Cassandra/2/var/lib/cassandra/commitlog 
saved_caches_directory: /Cassandra/2/var/lib/cassandra/saved_caches 
- seeds: "127.0.0.1,127.0.0.2" 
listen_address: 127.0.0.2 
rpc_address: 127.0.0.2 

其他人設置是默認設置,我沒有修改任何東西。然後我創建一個keyspace和column family使用:

CREATE KEYSPACE demo with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = [{replication_factor:2}]; 

我還沒有指定任何分配器,所以defauly是隨機我猜。

use demo; 

create column family order with comparator=UTF8Type and key_validation_class=UTF8Type and default_validation_class=UTF8Type and column_metadata=[{column_name: member, validation_class: UTF8Type},{column_name: user, validation_class: UTF8Type, index_type: KEYS},{column_name: instrument, validation_class: UTF8Type},{column_name: price, validation_class: DoubleType}, {column_name: quantity, validation_class: Int32Type},{column_name:datetime, validation_class: DateType}]; 

現在,如果我嘗試連接到127.0.0.1,插入數據,我相信這些數據應插入兩個127.0.0.1 127.0.0.2和,但它並非如此。

Set orders[KEY][user] = 'ABC' list orders; 

有什麼不對嗎?我該怎麼做才能使其可行。

請給我一個詳細的例子,如果你有任何。我想我在創建keyspace,Column系列和數據插入時做了一些錯誤。如果你有一個兩節點插入的例子,那也是很棒的。

回答

0

您是否使用兩個IP作爲種子,將其設置爲單個IP,以先啓動爲準。

什麼是「nodetool --host [127.0.0.1 | 127.0.0.2] ring」,說。你是否能夠在custer中看到兩個ip。

+0

是的,我使用兩個IP作爲種子。我已將INFO級別更改爲DEBUG,以確保兩者都可以通信,但我一次只能看到一個IP。兩個IP都沒有通信。 – Jone 2012-04-23 06:45:50

+0

是的,我使用兩個IP作爲種子,如果我設置爲單個IP作爲種子,那麼當我運行第二臺服務器時會出現異常。 – Jone 2012-04-23 07:00:55

1

我嘗試爲本地傳輸提供不同的端口號後出現類似的問題。它必須是相同的端口(默認爲9042),否則節點不會找到對方。 IP地址必須不同以防止節點之間的端口衝突。

使用./nodetool status來檢查您是否確實創建了一個集羣,而不是簡單的兩個隔離的實例。

相關問題