問題タブ [datastax-java-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
904 参照

datastax-enterprise - org.jboss.netty.channel.ChannelPipelineException: パイプラインの初期化に失敗しました

Java ドライバーを使用して Cassandra に接続し、いくつかの構成をフェッチし、結果に基づいていくつかの PIG スクリプトを生成して実行するアプリケーションがあります。

これで、PIG に必要な jar がクラスパスにない場合でも、Cassandra に正常に接続できます。同様に、PigServer クラスを起動し、構成を取得する Java ドライバーを使用して Cassandra に接続していない場合でも、DSE スタック全体を使用してスクリプト/ステートメントを実行できます。

両方を使用すると、次の例外が発生します。

他の人にも同様の例外が見られますが、MapReduce タスクから Cassandra ステートメントを実行しようとすると、これは私の場合ではありません: https://groups.google.com/a/lists.datastax.com/forum/#!topic/ java-driver-user/FhW_8e4FyAI http://www.datastax.com/dev/blog/the-native-cql-java-driver-goes-ga#comment-297187

ありがとう!

0 投票する
1 に答える
7188 参照

cassandra - Datastax Java ドライバーがクラスターへのログイン時に Cassandra PasswordAuthenticator に対して認証できない

以下のような小さなテスト Java プログラムを使用して、単一の Cassandra 2.0.1 ノードにログインし、エラーなしでクエリを実行できます。

間違ったパスワードを入力すると、予想どおり、「ユーザー名および/またはパスワードが正しくありません」というエラーが表示されて失敗します。

しかし、正しい資格情報を使用して、3 ノード クラスターに属するノードに対して同じプログラムを実行しようとすると、「必要なキー 'ユーザー名' がありません」というメッセージが表示され、やや混乱します。

なぜこうなった?

cqlsh同じ資格情報を指定しても問題なく動作するため、資格情報は正しいです。

テスト プログラム コード:

0 投票する
3 に答える
18743 参照

java - DataStax Java ドライバー 1.0.4 を使用して CQL で Cassandra に接続するときの例外

ラップトップで Cassandra 1.2.11 を実行しています。nodetoolandを使用して接続できcqlshますが、DataStax 1.0.4 Java API を使用して CQL 3.0 を使用して接続しようとすると、次のエラーが発生します。

DataStaxのドキュメントから取得した、次のコードを使用して接続しています。withPort()コールアウトのままにするなど、いくつかのポート番号を試しましたが、何も機能していないようです。

を使用telnetすると、指定した各ポートで Cassandra サーバーが確実にリッスンしていることを確認できます。ドキュメントに記載されているように、必要なすべてのライブラリ jar ファイルがクラスパス上にあることも確認しました。

0 投票する
3 に答える
13492 参照

java - Cassandra Datastax ドライバー - 接続プール

Datastax Cassandra Driver の接続プーリングを理解しようとしているので、Web サービスでより適切に使用できます。

ドキュメントのバージョン 1.0 があります。それは言います:

Java ドライバーは接続を非同期で使用するため、複数の要求を同じ接続で同時に送信できます。

彼らは接続によって何を理解していますか?クラスターに接続する場合、ビルダー、クラスター、およびセッションがあります。それらのどれが接続されていますか?

たとえば、次のパラメータがあります。

maxSimultaneousRequestsPerConnection - ホストへのすべての接続での同時要求の数。その後、さらに接続が作成されます。

したがって、これらの接続は、接続プールの場合に自動的に作成されます (これは私が期待することです)。しかし、接続は正確には何ですか?オブジェクトをクラスター化しますか? セッション?

Web サービスで何を「静的」に保つかを決定しようとしています。とりあえず、Builder を静的にしておくことにしたので、呼び出しごとに新しい Cluster と新しい Session を作成します。これでよろしいですか?クラスターが接続の場合は、問題ありません。しかし、そうですか?ここで、ロガーは呼び出しごとに次のように言います。

2013:12:06 12:05:50 DEBUG Cluster:742 - 接点を持つ新しいクラスターの開始

2013:12:06 12:05:50 DEBUG ControlConnection:216 - [接続の制御] ノード リストとトークン マップの更新

2013:12:06 12:05:50 DEBUG ControlConnection:219 - [コントロール接続] スキーマの更新

2013:12:06 12:05:50 DEBUG ControlConnection:147 - [制御接続] 正常に接続されました...

それで、毎回クラスターに接続しますか?それは私が望むものではありません。接続を再利用したいのです。

では、接続は実際にはセッションですか? この場合、ビルダーではなくクラスターを静的に保つ必要があります。

可能な限り接続を再利用するには、どのメソッドを呼び出す必要がありますか?

0 投票する
1 に答える
1741 参照

java - CQL 3.0 を使用してコレクションにカスタム インデックスを作成する

私は、次のように作成された、タグ付きの曲の列ファミリーを説明するCQL 3.0データ モデリング ドキュメントを見てきました。

特定のタグを持つすべての曲のリストを取得したいので、適切なインデックスを追加する必要があります。

title列に簡単にインデックスを作成できますtagsが、コレクションである列にインデックスを付けようとすると、次のようになります。

DataStax Java ドライバー 1.0.4 から次のエラーが発生します。

これは、JIRA issue CASSANDRA-4511によると、Cassandra (2.1) の以降のバージョンで修正される可能性があるようです。ただし、現在 Apache Cassandra 1.2.11 を使用しており、まだアップグレードしたくありません。問題CASSANDRA-5615によると、Cassandra 1.2.6ではコレクションのカスタム インデックスサポートされています。

問題は、入手可能な唯一のドキュメントに次のように記載されていることです。

Cassandra は、カスタム インデックスの作成をサポートしていますが、これは内部使用のためのものであり、このドキュメントの範囲外です。

ただし、次の構文が推奨されます。

class_nameこの CQL ステートメントで指定されているのは何ですか?

特定のタグを持つ曲のリストをテーブルに照会できるように、タグのインデックスを作成するより良い方法はありますか?

0 投票する
1 に答える
4697 参照

java - Cassandra NoHostAvailableException (まだ生きているノードがある場合)

1 つの DC に 2 つの C* 2.0.2 ノード (cassandra.yaml のデフォルト構成) と RF=2 のキースペースがあります。2 つのクライアントが Datastax Java Driver 1.0.3 を使用してこの DC に接続されています。クライアントは、エラーなしで CL=ONE を指定して C* との間でデータを読み書きします。しかし、1 つのノードをシャットダウンすると、両方のクライアントで大量の例外が発生します。

その一連の例外の後、クライアントはまだ生きている別のノードで正常に動作し続けます。一度に少なくとも 1 つのアクティブなノードがあり、CL=ONE が使用されているため、NoHostAvailableException を受信しないようにするにはどうすればよいですか?

更新: 2 つのノードのいずれかをシャットダウンすると、アプリ ログに次の例外が表示されることがあります。

1 つのノードだけをシャットダウンすると、両方のノードが使用できないのはなぜですか? 2 つ目は現時点でまだ生きていて、cqlsh で接続できます。