0

を使用しているプロジェクトに取り組み始めましたCassandra database

本番 DBA にはセットアップがtwo clusterあり、各クラスターには12 nodes.

Pelops clientCassandra データベースからデータを読み取るために使用します。今、クラスターの作成中に追加する必要があるノードの数などClusterを使用してクラスを作成する最良の方法は何ですか?Pelops clientPelops

私の理解では、それぞれ 12 ノードの 2 つのクラスターを使用pelops clientするので、すべてを使用してクラスターを作成することでした。24 nodesこれは正しいアプローチですか?

そうでない場合、Pelops クライアントを使用してクラスターを作成する際に、どのノードを (各クラスターから) 追加する必要があるかをどのように決定するのでしょうか?

String[] nodes = what nodes I should use from two clusters? And how many nodes I should add?; 

int port = cfg.getInt("cassandra.port"); 

boolean dynamicND = true; // dynamic node discovery 

Config casconf = new Config(port, true, 0); 

Cluster cluster = new Cluster(nodes, casconf, dynamicND); 

Pelops.addPool(Const.CASSANDRA_POOL, cluster, Const.CASSANDRA_KS);

誰でもこれで私を助けることができますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

他の投稿でコメントをよりよく説明しようとします。私のヒントは、各クラスターの種だけをペロプスに与えることです。各クラスターに 2 つのシードがあると仮定すると、これらの 4 つのノードを使用してプールを作成します。

Pelops を使用しています -- Dominic Williams (Pelops 作成者) のドキュメントから:

プールを作成するには、名前、既知の接続ノードのリスト (ライブラリはクラスター内の追加のノードを自動的に検出できますが、末尾の注を参照してください)、ノードがリッスンしているネットワーク ポート、およびプール内の接続数などを制御するポリシー。-- そのため、ノード リスト全体を渡す必要はありません。

カサンドラのドキュメントから:

Cassandra ノードは、ゴシップと呼ばれるメカニズムを使用して相互に情報を交換しますが、ボールを転がすには、新しく開始されたノードが少なくとも 1 つの他のノードを知る必要があります。これはシードと呼ばれます。少数の比較的安定したノードをシードとして選択するのが通例ですが、ここには厳格なルールはありません

私は 3 年間 Pelops (Cassandra 0.6 から現在は 1.0.6 で開始) を使用して運用しており、ノードのリストとしてシードのみを使用するアプローチ ... 正常に動作します!

いくつかのヒント:

1 : 接続とリングの状態が心配な場合は、EACH_QUORUM CL を使用して「ランダム クエリ」を作成し、接続をチェックするクラスと、Nodetool Java クラスを使用してリングの状態をチェックするクラスを作成できます。

2 : cassandra で削除を実行する場合は、nodetool 修復の重要性を覚えておいてください ( http://wiki.apache.org/cassandra/Operations#Repairing_missing_or_inconsistent_data )

よろしく、 カルロ

于 2013-04-12T07:51:55.203 に答える