Apache Cassandraは、多くの商用サーバー間で大量のデータを処理するように設計された無料のオープンソースNoSQLデータベース管理システムであり、単一障害点のない高可用性を提供します。 Apache Cassandraは、最初はFacebookによって開発され、後にApacheFoundationによって買収されました。
Apache Cassandraは、絶えず変化する大量のデータに適しています。
RDBMSと比較したCassandra
Cassandraは、リレーショナルデータベースの概念と非常によく似ています。
Keyspace
–RDBMSのデータベース/スキーマに似ていますTable
–RDBMSの表に似ていますRow
–RDBMSの行に似ていますColumn
–RDBMSの列に似ていますPrimary key
–RDBMSの主キーに似ています
前提条件
このガイドに従うには、次のものが必要です。
- Centos8サーバー
- サーバーまたはsudoアクセス権を持つユーザーへのrootアクセス
- パッケージをダウンロードするためのインターネットアクセス
以下は、Cassandraをインストールするために実行する手順です
- システムが最新であることを確認してください
- システムにJavaをインストールする
- システムにApacheCassandraをインストールします
- Apache Cassandraクライアント(cqlsh)をインストールして構成します
- ApacheCassandraを構成する
ステップ1システムが最新であることを確認します
サーバーにインストールされているCentos8パッケージが最新であることを確認しましょう。これを行うには、次のコマンドを実行します。
sudo dnf -y update
ステップ2システムにJavaをインストールする
Apache Cassandraを実行するには、システムにJava8が必要です。次のコマンドを入力して、Javaがインストールされていることを確認します。
java -version
この出力が表示された場合:
# java -version
-bash: java: command not found
次に、Javaがインストールされていないことを意味します。次のコマンドでインストールしましょう:
sudo dnf install -y java-1.8.0-openjdk
インストールが完了したら、次のように確認します:
# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
Java 8がシステムにインストールされたので、Cassandraをインストールしましょう。
ステップ3.システムにApacheCassandraをインストールします
Apache Cassandraは、デフォルトのCentos8リポジトリーでは使用できません。 Cassandra Reposを指すリポジトリを作成しましょう:
この/etc/yum.repos.d/cassandra.repo
を作成します このコマンドを使用して必要なコンテンツを含むファイル:
cat > /etc/yum.repos.d/cassandra.repo <<EOF
[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS
EOF
リポジトリを追加したので、cassandraをインストールできます:
sudo dnf install -y cassandra
次のコマンドを使用して、Cassandraがインストールされていることを確認します。
# rpm -qi cassandra
Name : cassandra
Version : 4.0.0
Release : 1
Architecture: noarch
Install Date: Tue 31 Aug 2021 08:59:00 AM UTC
Group : Development/Libraries
Size : 54941890
License : Apache Software License 2.0
Signature : RSA/SHA512, Thu 22 Jul 2021 10:22:35 PM UTC, Key ID 5e85b9ae0b84c041
Source RPM : cassandra-4.0.0-1.src.rpm
Build Date : Thu 22 Jul 2021 10:22:10 PM UTC
Build Host : 0b542adba94d
Relocations : (not relocatable)
URL : http://cassandra.apache.org/
Summary : Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store.
Description :
Cassandra is a distributed (peer-to-peer) system for the management and storage of structured data.
そのコマンドがインストールされると、cassandraバイナリが/usr/sbin/cassandra
に作成されます。 。 Centos 8はsystemdを使用してサービスを管理するため、/etc/systemd/system/cassandra.service
にsystemdファイルを作成しましょう。 cassandraサービスの管理に必要なコンテンツを含む
sudo cat > /etc/systemd/system/cassandra.service <<EOF
[Unit]
Description=Apache Cassandra 4.0
After=network.target
[Service]
Type=simple
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
EOF
ファイルが作成されると、systemdを使用してサービスを管理できます。
次のコマンドを実行して、新しいsystemdサービスが登録されていることを確認します。
sudo systemctl daemon-reload
サービスを開始するには:
sudo systemctl start cassandra
サービスが実行されていることを確認します。 Active: active (running)
が表示されていることを確認してください 次のステータスコマンドで:
# sudo systemctl status cassandra
● cassandra.service - Apache Cassandra
Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2021-08-31 15:50:07 UTC; 8s ago
Main PID: 100752 (java)
Tasks: 54 (limit: 23800)
Memory: 1.1G
CGroup: /system.slice/cassandra.service
└─100752 java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+UseNUMA -XX:+PerfD>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,284 NativeTransportService.java:68 - Netty using native Epoll event loop
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [CompactionExecutor:1] 2021-08-31 15:50:13,326 CompactionTask.java:150 - Compacting (20ffe200-0a73-11ec-a273-f980f7c7aa0a) [/var/lib/cassandra>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,329 PipelineConfigurator.java:124 - Using Netty Version: [netty-buffer=netty-buffer-4.1.58.Final.10b03e6, netty-cod>
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,329 PipelineConfigurator.java:125 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
Aug 31 15:50:13 ipa-server.citizix.light cassandra[100752]: INFO [main] 2021-08-31 15:50:13,334 CassandraDaemon.java:780 - Startup complete
cassandraサービスが常に起動時に実行されるようにします:
sudo systemctl enable cassandra
nodetool status
を使用します 現在のノードステータスのステータスを確認するコマンド:
# 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 166.07 KiB 16 100.0% 2b8341f0-2638-46bb-a0e0-e20b86f96d0a rack1
サービスが稼働しているので、クライアントをインストールしましょう:
ステップ4.ApacheCassandraクライアント(cqlsh)をインストールして構成します
Apache Cassandraサービスがインストールおよび構成されたので、それに接続する必要があります。
Cassandraへのアクセスに使用されるクライアントツール(cqlsh
)はPythonクライアントです。したがって、インストールする前に、Pythonの環境をセットアップする必要があります:
python3とpythonpipをインストールします
sudo dnf install -y python39 python39-pip
インストールとPythonおよびpipを確認します:
# python3 -V
Python 3.9.2
# pip3 -V
pip 20.2.4 from /usr/lib/python3.9/site-packages/pip (python 3.9)
pipを使用して、cqlshをインストールします:
sudo pip3 install cqlsh
これで、cqlshを使用してcassandraに接続できます。 Cassandraはローカルにインストールされるため、ホストを指定する必要はありません:
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
クライアントがセットアップされたので、Cassandraを構成しましょう
ステップ4.ApacheCassandraを構成する
ApacheCassandraを構成しましょう。メインの設定ファイルはここにあります/etc/cassandra/default.conf/cassandra.yaml
変更すべき注目すべき構成:
-
cluster_name
–クラスターの名前 seeds
クラスターシードのIPアドレスのリストが含まれ、コンマで区切られています-
listen_address
ノードのIPアドレスが含まれています。これにより、他のノードがこのノードと通信できるようになります
さらに、env変数JVM_OPTS
を追加することもできます。 追加のJVMコマンドライン引数を追加します。これは、開始時にcassandraサービスに渡されます。
デフォルトでは、Cassandraのクラスター名は「TestCluster」です。 cqlsh
を使用してログインすることにより、これを希望のクラスター名に変更できます。 以下のコマンドを実行します。
UPDATE system.local
SET cluster_name = 'Citizix Cluster'
WHERE KEY = 'local';
その後、設定ファイル/etc/cassandra/default.conf/cassandra.yaml
を更新します 新しい名前で:
sudo vim /etc/cassandra/default.conf/cassandra.yaml
次に、この行を更新します:
cluster_name: 'Citizix Cluster'
保存して終了します。
これを使用してシステムキャッシュをクリアしましょう:
nodetool flush system
次に、cassandraサービスを再起動します
sudo systemctl restart cassandra
再度ログインして、図のようにクラスター名を確認します。
結論
上記のガイドでは、なんとかcassandaをインストールして構成できました。次の点に注意してください:
- Cassandraはログをこのディレクトリに保存します
/var/log/cassandra/
/var/log/cassandra/system.log
にあるメインログファイルを使用します - systemdサービスを作成したので、
stdout
も確認できます。 およびstderr
次のコマンドを使用してログを記録します:sudo journalctl -fu cassandra
- この
/var/lib/cassandra
デフォルトのデータディレクトリとして設定されます。設定ファイルで更新できます - Cassandra構成ファイルはこのディレクトリに保存されます
/etc/cassandra/
デフォルトの設定ファイル/etc/cassandra/default.conf/cassandra.yaml
を含む - 作成したcassandraサービスを管理するには:
# Start the service sudo systemctl start cassandra # Check the service status sudo systemctl status cassandra # Stop the service sudo systemctl stop cassandra # Enable the service sudo systemctl enable cassandra # Restart the service sudo systemctl restart cassandra
詳細については、こちらのCassandraドキュメントページも確認してください。