問題タブ [datastax]
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.
cassandra - Cassandraで列タイプを変更する際のエラー
Cassandra でテーブルの列の型を変更するのに問題があります。
これは、列が PRIMARY KEY の一部ではなく、INDEX がない場合に型を変更できるというドキュメントへのリンクです。私はそれを機能させることができません。
列のタイプを変更しようとすると、エラーが発生します。
私は何が欠けているか、間違っていますか? どんな助けでも大歓迎です。
cassandra - カサンドラでクラスターからリングを分離する方法
cassandra リング用に 10 個のノード、hadoop リング用に 10 個のノードを持つ cassandra DSE クラスターがあります。ここで、アプリケーションはデータを cassandra リングに書き込み、cassandra はデータを Hadoop リングにレプリケートします。
2 つのリングを分離し、それらを 2 つの異なるクラスターとして作成し、アプリケーションが同時に 2 つのクラスターにデータを書き込みます。
クラスタを分離するにはどうすればよいですか? それは可能ですか?
クラスターには最大 600 GB のデータがあり、削除できません。
cassandra - AWS Elastic IP アドレスを使用している場合、Cassandra がシードに接続できない... プライベート IP アドレスでのみ機能する
これらのインスタンスを指す 3 つの Elastic IP アドレスを持つ 3 つのインスタンスを作成しました。
dsc の yum インストールを実行しました: dsc12.noarch 1.2.13-1 @datastax
また、/etc/cassandra/default.conf/cassandra.yaml には次のものがあります: - シード: [エラスティック IP リスト]
しかし、「service cassandra start」で cassandra を起動すると、/var/log/cassandra/cassandra.log に次のように表示されます: ... 起動中に例外が発生しました: シードに接続できません! ...そして、確かに「nodetoolステータス」は次のように表示されます:「127.0.0.1:7199」への接続に失敗しました:接続が拒否されました
BUT: インスタンスの「プライベート IP」を使用するようにシードの値を変更すると、cassandra は問題なく起動します。Elastic IP で問題なく動作すると思いますが、そうではありません。
それがなぜなのか知っていますか?
Elastic IP を機能させたい理由は、事前に IP アドレスを知っているためです。これにより、マシンに Puppet をプロビジョニングするときに、cassandra.yaml ファイルにシードを事前に設定できます。マシンが起動するまで、プライベートIPアドレスはわかりません:(
cassandra - Need multiple Index in cassandra
We are migrating from oracle to cassandra. We have a requirement to do minimal changes to the application.
Three questions came up when i am doing POC on cassandra.
In a Oracle we have created multiple composite indexes but i don't find any document saying cassandra will support that. Is it possible to create multiple composite indexes?. If not any suggestion on this.
Our Txn table is having 7 out of 15 columns used in where clause. Without index i cannot put that column in where clause. Even if i create multiple secondary index, In where clause, Casandra will select one column with low cardinality and it will not use other secondary indexes i have created. Any other way to improve the performance?
Problem on creating index on boolean data type. This is how we are decided to create a table/columnfamily
create table dept( emp_name varchar, emp_id int, dept_id int, dept_name varchar, active boolean, primary key(dept_id,emp_id));
In application we have queries like below 1. select * from dept where dept_name='software'; I have created secondary index for dept_name. So This problem is solved.
- select * from dept where dept_id=1001 and active = 'Y'; I feel difficult to create indexes for this query. Since active column is a boolean type, creating secondary index is not useful. Without index i will not able to include that condition in where clause.
Any suggestions for my queries?
cassandra - Murmur3 パーティショナー用のマルチデータセンター トークンを生成する方法
3 つのノードを持つ cassandra リング、3 つのノードを持つ Hadoop リング、および 3 つのノードを持つ solr リングがすべて同じクラスター内にあります。
私の計画は、データを cassandra リングに書き込み、cassandra DC レプリケーションを使用して、データを他の 2 つのリング (Hadoop と solr) に複製することです。
cassandra リングに vnode を使用しましたが、hadoop/solr では vnode がサポートされていないため、hadoop と solr にはトークンを使用する必要があります。
私の質問は、murmur3 パーティショナー用の複数のデータセンター トークンを生成する方法です。
cassandra - DataStax OpsCenter 4.0.3 を Cassandra 2.0.4 クラスターに接続する際に問題が発生しました
1 ノードの C* 2.0.4 クラスターを実行していますが、nodetool ステータスは正常なクラスターを示しています。
次に、「sudo yum install opscenter-free」を使用して、同じネットワーク上の別のマシンに OpsCenter 4.0.3 をインストールしました。
opscenterd.conf ファイルで、interface = 'OpsCenter サーバーのパブリック IP' を設定し、OpsCenter サーバーを起動しました。
その後、OpsCenter の Web ページが表示され、[既存のクラスタを使用] をクリックしました。
[クラスターの追加] インターフェイスで、1 ノードの Cassandra クラスターの rpc_address を入力しました。OpsCenter はそれを受け入れ、次のページにクラスタ名を正しく表示しました。
ただし、OpsCenter のグラフはどれもロードされず、次のエラーが表示されます: 0 個中 0 個のエージェントが接続されています。また、上部のプラグ アイコンに対して赤色の X が点滅しています。
OpsCenter と C* ノードの両方で、CentOS のファイアウォールは現在オフになっています。
OpsCenter を C* ノードに正しく接続するにはどうすればよいですか?
OpsCenter のログは次のように表示されます (注: IP を ABCD に置き換えました):
Cassandra ノードでは、すべてが正常に見えます。
ただし、OpsCenter が取得しようとしている URL をカールすることはできません。
OpsCenterd.conf ファイルで SSL が無効になっています (デフォルト設定)。
これは、次の URL http:// OpsCenter のパブリック IP :8888/Dog/nodesに表示される内容です。
これを修正する方法のアイデアはありますか?
Cassandra の YAML ファイルでは、rpc_server_type が sync に設定されていることに注意してください。
アップデート:
また、'yum install datastax-agent' を使用して C* ノードに OpsCenter エージェントを手動でインストールしようとした後、address.yaml ファイルを次の設定で編集しました。
address.yaml ファイルに対していくつかの異なる設定を試みましたが、どれも機能しませんでした。たとえば、stop_interface のみを設定して、他の 3 行を削除しようとしました。うまくいきませんでした。また、インターフェイスを停止してローカルにするだけに設定しようとしましたが、それも機能しませんでした。
「service datastax-agent start」で datastax エージェントを開始すると、突然 Cassandra サービスがクラッシュします。
[root@cassandra01 ~]# sudo service cassandra status cassandra dead but pid file exists
C* サービスがクラッシュしても、opscenter エージェントは稼働し続けます。エージェント サービスを停止して C* サービスを再度開始すると (sudo サービス cassandra ステータス)、C* は正常にバックアップを開始し、nodetool ステータスは正常な 1 ノード クラスターを示します。しかし、エージェント サービスを開始するとすぐに、C* サービスが突然再びクラッシュします。address.yaml ファイルで試したさまざまな設定はすべて、これと同じ動作を引き起こします。
理想的には、エージェントを手動でインストールするのではなく、そのインストーラを OpsCenter GUI から C* ノードにプッシュしたいのですが、それがうまくいかなかったため、エージェントを手動でインストールして OpsCenter に接続しようとしましたが、残念ながら、これも機能しません。
また、Cassandra サービスがクラッシュしたときに、Cassandra ノードでも次のようなメッセージが表示されることがあります。log4j:WARN log4j システムを適切に初期化してください。log4j:WARN 詳細については、http: //logging.apache.org/log4j/1.2/faq.html#noconfigを参照してください。使用法: cassandra start|stop|status|restart|reload
Cassandra ノードの log4j-server.properties の内容は次のとおりです。
そして最後に、Cassandra ノードで実行されている OpsCenter エージェントの agent.log が示す内容は次のとおりです。
cassandra - Apache cassandra の Hector クライアント - テーブルの作成方法
私のプロジェクトでは、Datastax が提供する Apache Cassandra (v2.x) を使用しています。以下のように、Datasatx API を使用して ColumnFamily を作成しています。
私は現在、Datastax が提供する Cassandra からプレーンなバニラ風味の Apache Cassandra (v2.x) に移行し、Hector API を使用して同じことを行うように求められています。
ただし、Hector で同様の API を見つけることができませんでした。今までやってきたことは以下の通りです。
私は今この点で立ち往生しています。Datastax API で可能だったように (つまり、単純な CQL を与えることによって) CREATE TABLE に単純なクエリ文字列を与えることができる API を Hector で見つけることができません。Hector WIKI で見たオプションの 1 つは、ColumnFamilyTemplate を使用していました。私が見た他のオプションは、BasicColumnDefinition を使用していました。私が使用していた別のオプションは、 Mutator.insert() 操作を使用していました。
しかし、これらの解決策はどれも、テーブルの列 (別名列ファミリー) の「データ型」をどのように定義するかについて十分に明確ではありません。
さらに、Serializers (StringSearlizer など) と Comparators が正確に何であるかについて、十分なガイダンス/API の詳細が明確ではありません。
誰かがこれについて私を助けてくれますか? 私の全体的な目的は、単純な CQL クエリを取得して実行できる API を Hector で検索することです (Datastax API で可能です)。
@アレックス・ポペスク
明確にしてくれてありがとう、私は今理解しました。
クライアントを次のように変更しました。
cqlsh を使用してクエリ DESCRIBE COLUMNFAMILY "TEST_CF" の出力を確認すると、次の出力が得られます。
この出力を理解できません。この出力に列「aKey」と「aColumn」が表示されません。列名を「キー」、「列1」などとして表示する出力はどうですか(コードで言及したことはありません)。さらに、この出力に表示されるデータ型を理解できません。
私の期待は、以下のような出力を持つことです:
期待した出力が得られないように、Hector API のどこで間違いを犯しているのか指摘していただけますか? また、列のデータ型を varchar 以外 (float など) にしたい場合は、コードでどのような変更を行う必要がありますか?