GNU/Linux >> Linux の 問題 >  >> Cent OS

Centos8にApacheCassandra4.0をインストールして構成する

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をインストールするために実行する手順です

  1. システムが最新であることを確認してください
  2. システムにJavaをインストールする
  3. システムにApacheCassandraをインストールします
  4. Apache Cassandraクライアント(cqlsh)をインストールして構成します
  5. 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ドキュメントページも確認してください。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にApacheCassandraをインストールする方法

  3. CentOS7にApacheとPHPをインストールする

  1. CentOS8にApacheCassandraをインストールする方法

  2. CentOS7にRedisをインストールして設定する方法

  3. CentOS7にGitLabをインストールして構成する方法

  1. CentOS7でApacheを使用してNextcloudをインストールおよび構成する方法

  2. CentOS7にRedmineをインストールして設定する方法

  3. CentOS7にApacheCassandraをインストールする方法