問題タブ [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.
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
ありがとう!
cassandra - Datastax Java ドライバーがクラスターへのログイン時に Cassandra PasswordAuthenticator に対して認証できない
以下のような小さなテスト Java プログラムを使用して、単一の Cassandra 2.0.1 ノードにログインし、エラーなしでクエリを実行できます。
間違ったパスワードを入力すると、予想どおり、「ユーザー名および/またはパスワードが正しくありません」というエラーが表示されて失敗します。
しかし、正しい資格情報を使用して、3 ノード クラスターに属するノードに対して同じプログラムを実行しようとすると、「必要なキー 'ユーザー名' がありません」というメッセージが表示され、やや混乱します。
なぜこうなった?
cqlsh
同じ資格情報を指定しても問題なく動作するため、資格情報は正しいです。
テスト プログラム コード:
java - DataStax Java ドライバー 1.0.4 を使用して CQL で Cassandra に接続するときの例外
ラップトップで Cassandra 1.2.11 を実行しています。nodetool
andを使用して接続できcqlsh
ますが、DataStax 1.0.4 Java API を使用して CQL 3.0 を使用して接続しようとすると、次のエラーが発生します。
DataStaxのドキュメントから取得した、次のコードを使用して接続しています。withPort()
コールアウトのままにするなど、いくつかのポート番号を試しましたが、何も機能していないようです。
を使用telnet
すると、指定した各ポートで Cassandra サーバーが確実にリッスンしていることを確認できます。ドキュメントに記載されているように、必要なすべてのライブラリ jar ファイルがクラスパス上にあることも確認しました。
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 - [制御接続] 正常に接続されました...
それで、毎回クラスターに接続しますか?それは私が望むものではありません。接続を再利用したいのです。
では、接続は実際にはセッションですか? この場合、ビルダーではなくクラスターを静的に保つ必要があります。
可能な限り接続を再利用するには、どのメソッドを呼び出す必要がありますか?
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 ステートメントで指定されているのは何ですか?
特定のタグを持つ曲のリストを曲テーブルに照会できるように、タグのインデックスを作成するより良い方法はありますか?
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 で接続できます。