1。はじめに
カサンドラ は、幅広い列ストアとNoSQLデータベースを備えたオープンソースの分散データベース管理システムであり、単一障害点なしで多くの商用サーバーにまたがる大量のデータを処理できます。これはApacheSoftwareFoundationによって作成され、Javaで記述されています。この記事では、CentOS7LinuxにCassandraをインストールするためのステップバイステップのプロセスを実行します。
2。前提条件
以下に示すすべてのコマンドは、 root
として実行する必要があります またはsudo
ユーザー。
2.1。 Python2.7をインストールする
CentOS 7では、Python2.7がプリインストールされています。何らかの理由で見つからない場合は、次のコマンドを使用してインストールできます。
# yum -y install python
# python --version Python 2.7.5
2.2。 Javaをインストールする
以下のコマンドを使用して、最新バージョンのJava 8をインストールし、インストールを確認します。
# yum install java-1.8.0-openjdk-devel
# java -version
出力例:
openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
3。 Cassandraのインストール方法
まず、Cassandraリポジトリを追加しましょう。これを行うには、cassandra.repo
という名前のファイルを作成します /etc/yum.repos.d/
の下 ディレクトリ:
# vi /etc/yum.repos.d/cassandra.repo
その中に次の行を追加します:
[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS
ESCを押します キーを押して:wq
と入力します ファイルを保存して閉じます。
Cassandraリポジトリが追加されているかどうかを確認します。以下のコマンドは、インストールされ有効になっているリポジトリを確認します:
# yum repolist

リポジトリを追加したら、次のコマンドを実行してCassandraをCentOSシステムにインストールします。
# yum -y install cassandra
Cassandraサービスを有効にして開始します:
# systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
# systemctl start Cassandra
カサンドラのステータスを確認します:
# systemctl status cassandra

以下のコマンドを使用して、クラスターの状態、負荷、IDなどの詳細を取得します。
# nodetool status
出力例:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.08 KiB 16 100.0% bf2df7a9-54bc-41c9-8c6c-0b9322d10e71 rack1

出力では、
- 国連 -アップ&ノーマル
- 住所 -ノードのIPアドレス
- ロード -snapshotsサブディレクトリ内のすべてのコンテンツを除外した後、Cassandraデータディレクトリの下のファイルシステムデータの量。更新されると90秒ごとになります。
- トークン -ノードに割り当てられているトークンの数。
- 所有者 -ノードが所有するデータの量。ノードはリングの33%を所有できますが、レプリケーション係数が3の場合は100%を表示します。
- ホストID -ホストのネットワークID
- ラック -それが存在するノードのラック。
4。 Cqlsh –CassandraのCLI
cqlshは、CQLを利用してCassandra(Cassandraクエリ言語)に接続するためのコマンドラインインターフェイスです。これはすべてのCassandraパッケージに含まれており、bin/
のcassandra実行可能ファイルと一緒に見つけることができます。 ディレクトリ。 Pythonネイティブプロトコルドライバーは、単一ノードに接続するcqlshを実装するために使用されます。
Cqlshを起動するには、次を実行します:
# cqlsh
出力例:
Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. cqlsh>にHELPを使用します

5。 CQLサンプルコマンド
5.1。キースペースを作成する
Cassandraでは、キースペースは、リレーショナルデータベース管理システム(RDMBS)のデータベースと同様にデータコンテナとして機能します
cqlsh> CREATE KEYSPACE IF NOT EXISTS OsTechNix WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }; cqlsh>
以下のコマンドを使用して、システムのキースペースを確認してください。
cqlsh> SELECT * FROM system_schema.keyspaces;

すべてのキースペースを表示するには、次のコマンドを実行します:
cqlsh> desc keyspaces;
クラスタ上のすべてのキースペースが一覧表示されます:
ostechnix system_auth system_schema system_views system system_distributed system_traces system_virtual_schema

5.2。テーブルを作成し、サンプルデータを挿入します
CREATE TABLE
を使用できます RDBMSで通常行うように、各列のデータ型を定義するステートメント。データは、SQL定義と同様に、列の行を含むCQLテーブルに格納されます。
テーブルを作成するには、「主キー」およびその他のデータフィールドを定義する必要があります。テーブルの作成については、以下の例に従ってください。
cqlsh> CREATE TABLE ostechnix.sample_table ( id UUID PRIMARY KEY, name text, birthday timestamp, nationality text, weight text, height text );
cqlsh>
INSERT
を使用します 単純なデータをテーブルostechnix.sample_table
に挿入するステートメント 上で作成します。以下の例では、2つのレコードがテーブルに追加されています。
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a803e2, 'KARTHICK', 'Indian');
cqlsh> INSERT INTO ostechnix.sample_table (id, name, nationality, weight) VALUES (5b6962dd-3f90-4c93-8f61-eabfa4a804e3, 'MOHAN', 'Indian', '85');
5.3。テーブルのクエリ
テーブルから1つ以上の行を返すには、SELECTステートメントを使用します。
cqlsh> SELECT * FROM ostechnix.sample_table;

ここでは、 *
テーブルからすべてのデータを返します。
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85';
出力例:
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING" cqlsh>
Cassandraは、'where
の主キーのすべての列の値を指定しないクエリを実行しません。 '句、および'ALLOW FILTERING'
を使用するように警告する上記のエラーを発行します 。
このエラーの理由は、完全なパーティションキーがWHERE
に含まれていない場合、Cassandraは必要な結果を含むノードを識別できないためです。 句。その結果、Cassandraは各ノードのデータセット全体をスキャンして、関連するデータが識別されたことを確認する必要があります。
cqlsh> SELECT * FROM ostechnix.sample_table WHERE weight = '85' ALLOW FILTERING;

6。まとめ
この記事では、Cassandraのインストール手順といくつかのサンプルCQLコマンドについて説明しました。今後の記事で、CassandraOperationについて詳しく説明します。