2012-04-20 10 views
1

私は1つのノードクラスタを持っており、私は127.0.0.1と127.0.0.2という2つのアドレスに分けました。 127.0.0.1にデータを挿入しようとすると、Cassandra Clientを使用します。データは127.0.0.1で正常に追加され、それも見ることができますが、127.0.0.2からの表示に接続しようとすると、更新が見られません。データが存在しません。私は前回もうまく説明できなかったと思います.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 

他の設定はデフォルトの設定であり、私は何も変更していません。私はそうdefaulyどんなpartionerを指定していない

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

をランダムである私は推測する:それから私は使用してキースペースとカラム家族が作成されます。私は127.0.0.1に接続してデータを挿入しようとした場合

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.2のために挿入されなければならないが、それはそうではないということ信じて。

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

間違いがありますか?私はそれを実行可能にするために何をすべきですか?

ある場合は詳細を教えてください。私はキースペース、列ファミリとデータ挿入を作成する間に何か間違っていると思います。あなたは2つのノードの挿入を持つ例がある場合も素晴らしいでしょう。

答えて

0

シードとして両方のIPを使用していますか、最初にブートされたものをシングルIPに設定していますか。

「nodetool --host [127.0.0.1 | 127.0.0.2] ring」とは何ですか?あなたはカスターで両方のipを見ることができますか?

+0

はい、両方のIPをシードとして使用しています。 INFOレベルをDEBUGに変更して、両方の通信が確実に行われるようにしましたが、一度に1つのIPしか見ることができません。両方のIPは通信していません。 – Jone

+0

はい、シードとしてIPを両方使用しています。シードとして単一IPに設定した場合、2番目のサーバーを実行すると例外が発生します。 – Jone

1

ネイティブトランスポート用に異なるポート番号を指定しても、同様の問題が発生しました。同じポート(デフォルトでは9042)でなければなりません。そうでない場合、ノードはお互いを見つけられません。 IPアドレスは、ノード間のポートの競合を防ぐために異なる必要があります。

./nodetool statusを使用して、実際に2つの独立したインスタンスではなくクラスタを実際に作成したかどうかを確認します。