Apache Cassandraは、オープンソースのNoSQL分散データベース管理システムです。 Cassandraは、データが自動的に複製されるノードをさらに追加することで、水平方向にスケーリングできます。ノードは、ダウンタイムなしで追加または削除できます。ノードは、クラスターまたはリングとして論理的に編成し、複数のデータセンターにまたがってセットアップして、高性能アプリケーションの速度と信頼性を向上させることができます。
このチュートリアルでは、ApacheCassandraをAlmaLinuxおよびRockyLinux8OSにインストールする方法を学習します。特に指定がない限り、両方のオペレーティングシステムのコマンドは同じです。
-
2GB以上のRAMを搭載したAlmaLinuxまたはRockyLinuxを実行しているサーバー。
-
root権限を持つ非sudoユーザー。
-
すべてが更新されます。
$ sudo dnf update
Apache Cassandraが機能するには、Java8が必要です。最新バージョンのCassandraには、Java 11の実験的なサポートが含まれていますが、チュートリアルでは、Java8の使用に固執します。
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Javaのインストールを確認します。
$ 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)
最初のステップは、Cassandraの公式リポジトリを追加することです。
次のコマンドを実行して、リポジトリファイル/etc/yum.repos.d/cassandra.repo
を作成します。 詳細を入力します。
$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [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 > EOF
リポジトリファイルが作成されたので、Cassandraをインストールします。
$ sudo dnf install cassandra -y
ステップ3-Cqlshをインストールします
CQLシェル( cqlsh )を使用します )Cassandraと対話するためのツール。このツールは、Python2.7またはPython3.6以降と互換性があります。このチュートリアルでは、Python3.8を使用します。 Python3.8をインストールします。
$ sudo dnf install python38
Python3.8をデフォルトのPythonバージョンとして設定します。
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
複数のオプションが表示されます。この場合、Python3.8をデフォルトバージョンとして設定するために3番目を選択します。
Pythonのインストールを確認します。
$ python --version Python 3.8.8
update-alternatives
を使用した後 ユーティリティ、python3
を使用する必要はありません コマンド。
cqlshをインストールします pipPythonパッケージマネージャーを使用します。
$ pip3 install --user cqlsh
cqlshを確認します インストールします。
$ cqlsh --version cqlsh 6.0.0
ステップ4-CassandraのSystemdユニットファイルを作成します
/etc/systemd/system/cassandra.service
を作成して開きます 編集用。
$ sudo nano /etc/systemd/system/cassandra.service
次のコードを貼り付けます。
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
サービスデーモンをリロードします。
$ sudo systemctl daemon-reload
Cassandraサービスを有効にして開始します。
$ sudo systemctl enable cassandra --now
サービスのステータスを確認してください。
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
nodetool
を使用してステータスを確認することもできます コマンド。
$ 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.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
ステップ5-Cassandraを構成する
Cassandraの構成ファイルのデフォルトの場所は/etc/cassandra
です。 。ログおよびデータディレクトリのデフォルトの場所は/var/log/cassandra
です。 および/var/lib/cassandra
。
ヒープサイズなどのJVMレベルの設定は、/etc/cassandra/conf/cassandra-env.sh
を介して設定できます。 ファイル。追加のJVMコマンドライン引数をJVM_OPTS
に渡すことができます 変数。引数は、開始時にCassandraに渡されます。
5.1ユーザー認証を有効にする
ユーザー認証を有効にするには、まず、/etc/cassandra/conf/cassandra.yaml
のバックアップを取ります ファイル。
$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
cassandra.yaml
を開きます 編集用のファイル。
$ sudo nano /etc/cassandra/conf/cassandra.yaml
このファイルで次のパラメータを見つけます。
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
以下のようにパラメータの値を変更します。
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
要件に基づいて他の設定を構成できます。コメントされている場合は、コメントを外します。
終了したら、 Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
Cassandraを再起動して、変更された設定を有効にします。
$ sudo systemctl restart cassandra
5.1.1-管理者スーパーユーザーを追加する
認証を有効にしたので、ユーザーを作成する必要があります。そのために、Cassandraコマンドシェルユーティリティを使用します。デフォルトユーザーcassandra
の資格情報を使用してログインします 。
$ cqlsh -u cassandra -p cassandra
新しいスーパーユーザーを作成します。 [username]
を置き換えます および[yourpassword]
クレデンシャルを使用します。
[email protected]> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
ログアウトします。
[email protected]> exit
新しいスーパーユーザーアカウントで再度ログインします。
$ cqlsh -u username -p yourpassword
デフォルトのcassandra
から昇格された権限を削除します アカウント。
[email protected]> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; [email protected]> REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
スーパーユーザーアカウントにすべての権限を付与します。
[email protected]> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
ログアウトします。
[email protected]> exit
5.2-コンソール構成ファイルを編集する
Cassandra Shellをカスタマイズする場合は、cqlshrc
を編集してカスタマイズできます。 ファイル。ファイルのデフォルトの場所は~/.cassandra
です。 ディレクトリ。別のディレクトリからロードする場合は、引数--cqlshrc /customdirectory
を渡すことができます。 cqlsh
に 実行中のツール。
サンプルファイルは/etc/cassandra/conf/cqlshrc.sample
にあります。 CassandraShellに関して構成できるすべての設定が含まれています。
サンプルファイルをコピーして~/.cassandra
に名前を変更します ディレクトリ。
$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
cqlshrc
を更新します 必要な権限を持つファイル。
$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
編集のためにファイルを開きます。
$ nano ~/.cassandra/cqlshrc
スーパーユーザーの資格情報を使用して自動的にログインするようにシェルを構成します。次のセクションを見つけて、ユーザー名とパスワードを入力します。
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
変更するその他の設定を編集します。一部の設定は、;;
を使用してコメント化されています 。二重のセミコロンを削除してコメントを解除してから、変更を加えます。
終了したら、 Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
新しい変更を加えてCassandraシェルにログインします。
$ 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. [email protected]>
5.3-クラスターの名前を変更
最後に、 Test Clusterからクラスター名の名前を変更します 選択した名前に。
cqlsh
にログインします ターミナル。
$ cqlsh
[clustername]
を置き換えます 以下のコマンドで新しいクラスター名を使用します。
[email protected]> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
シェルを終了します
[email protected]> exit
ファイル/etc/cassandra/conf/cassandra.yaml
を開きます 編集用。
$ sudo nano /etc/cassandra/conf/cassandra.yaml
変数cluster_name
の値を置き換えます 選択した名前で。
... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
終了したら、 Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。
Cassandraシステムキャッシュをクリアします。
$ nodetool flush system
Cassandraを再起動します。
$ sudo systemctl restart cassandra
シェルにログインして、新しい名前を確認します。
$ cqlsh Connected to HowtoForge 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. [email protected]>
このチュートリアルでは、ApacheCassandraをAlmaLinuxまたはRockyLinuxサーバーにインストールする方法を学びました。また、ユーザー認証を追加し、いくつかの基本的な構成を実行する方法も学びました。詳細については、Cassandraの公式ドキュメントをご覧ください。ご不明な点がございましたら、下のコメント欄に投稿してください。