GNU/Linux >> Linux の 問題 >  >> Linux

Linux に Apache Cassandra クラスターをインストールする方法

Apache Cassandra は、Facebook (現在は Meta) によって作成された、無料でオープンソースの NoSQL 分散データベース管理システムです。 Cassandra の分散型の性質により、単一障害点のない高可用性と高パフォーマンスが可能になります。

そのスケーラビリティにより、Cassandra は大量のアクティブで重要なデータ セットに適しています。 Apple、Bloomberg、BestBuy、eBay、Netflix、Spotify などの大規模で有名な組織。 Apache Cassandra について知りたい場合は、ここが最適です。

この記事では、Linux システムで Apache Cassandra クラスターをセットアップして構成する方法を学習します。また、コマンドライン ツールを使用して Cassandra を操作する方法も学びます。

前提条件

このチュートリアルの例に従うには、次の要件が整っていることを確認してください。

  • 2 つの Linux サーバーが同じネットワークにある必要があります。このチュートリアルでは、次の詳細で 2 つの Rocky Linux (v8.5) サーバーを使用します。
ホスト名 IPアドレス
cassandra01 172.16.1.10
cassandra02 172.16.1.15

Apache Cassandra のドキュメントには、互換性のある Linux ディストリビューションの規範的なリストは記載されていませんが、Cassandra は CentOS、RHEL、Debian、および SUSE Enterprise Linux で実行できると記載されています。

  • sudo 権限または root アカウントへのアクセス権が必要です。
  • Nano テキスト エディタまたは任意の Linux ベースのテキスト エディタ。

Java OpenJDK と Python のインストール

Apache Cassandra のインストールに取り掛かる前に、まずソフトウェアの依存関係をインストールします。 Cassandra は Java ベースのアプリケーションであり、最新バージョン (この記事の執筆時点では v4.0) には Java OpenJDK 1.8 と Python 3.6 が必要です。

このチュートリアルでは、RPM ベースの Linux ディストリビューション用の DNF パッケージ マネージャーを使用します。 Ubuntu や Debian などの DEB ベースのディストリビューションでは、Yum または Apt を使用することもできます。ディストリビューションのドキュメントを参照して、使用するパッケージ マネージャーを決定してください。

以下の手順に従って、Java OpenJDK 1.8 と Python 3.6 を各サーバーにインストールします。

1. SSH クライアントを開き、サーバーに接続して、sudo su を実行します。 rootになるコマンド。

ssh [email protected]_name_or_IP
sudo su

2. 次に、dnf を実行します 以下のコマンドを実行して、Java OpenJDK 1.8 および Python 3.6 パッケージをインストールします。インストールが完了するまで待ちます。

dnf install java-1.8.0-openjdk python36 -y

3. 次に、以下のコマンドを実行して Java のバージョンを確認します。

java -version

以下に、Java OpenJDK の現在のバージョンが 1.8.0_312 であることを示します。

4. 次に、サーバーのデフォルトの Python インタープリターを Python 3.6 に設定します。これを行うには、alternatives を実行します。 以下のようにコマンドを実行してください。

alternatives --config python

コマンド選択プロンプトで、Python のバージョンに対応する番号を入力します。以下の例は、Python3 がオプション 2 であることを示しています。

5. 最後に、次のコマンドを実行して Python のバージョンを確認します。

python --version

Python 3.x.x が表示されます。 以下のスクリーンショットのように、デフォルトです。

Apache Cassandra NoSQL データベースのインストール

依存関係をインストールし、それらが適切なバージョンであることを確認しました。それでは、Apache Cassandra をインストールしましょう!

Cassandra をインストールするには多くの方法がありますが、最も便利な方法は公式リポジトリを使用する方法です。ただし、最初に実行する必要がある簡単な手順がいくつかあります。 Cassandra NoSQL データベースを Linux システムにインストールするには、次の手順に従います。

1. 次のコマンドを実行して、Cassandra の新しいリポジトリ ファイルを作成します。

nano /etc/yum.repos.d/cassandra.repo

2. 次の Cassandra リポジトリ構成をコピーします。このリポジトリは、Rocky Linux を含むほとんどの Red Hat ディストリビューションで利用できます。

[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS

3. 編集後、Ctrl+X を押してファイルを保存して閉じます。 、 Y 、および Enter .

4. 次に、dnf を実行します。 以下のコマンドを実行して、システムで利用可能なすべてのリポジトリを確認します。

dnf repolist

以下に示すように、リポジトリ リストに Apache Cassandra リポジトリが表示されます。

5. 次のコマンドを実行して、Cassandra NoSQL データベースをインストールします。

dnf install cassandra -y

Apache Cassandra をインストールすると、以下のスクリーンショットのような確認メッセージが表示されます。

Apache Cassandra クラスタの構成

Cassandra をインストールしたら、構成 /etc/cassandra/conf/cassandra.yaml を編集する必要があります。 Cassandra クラスターをセットアップします。

Cassandra クラスターを機能させるには、すべてのサーバーでデフォルトの Cassandra 構成を次のように変更する必要があります。

  • デフォルトの cluster_name を変更します .
  • サーバーの IP アドレスを seeds に追加します オプション
  • デフォルトの listen_address を変更します
  • rpc_address を有効にする クライアント接続用

次に、次の手順に進み、Cassandra クラスターをセットアップします。

1. cassandra01 で 、次のコマンドを実行して Cassandra 構成 cassandra.yaml を開きます 編集用。

nano /etc/cassandra/conf/cassandra.yaml

2. cluster name のデフォルト値を変更します 新しい名前で。このチュートリアルでは、新しいクラスター名 ATA Cluster を使用します .

cluster_name: 'ATA Cluster'

3. ここで、各サーバーの IP アドレスをデフォルトの Cassandra TCP ポート 7000 で seeds に追加します。 以下のオプション。フォーマットは IP:Port,IP:Port のパターンに従います 、デフォルトのポートは 7000 です .

seeds: "172.16.1.10:7000,172.16.1.15:7000"

4. 次に、デフォルトの listen_address を変更します サーバーの IP アドレスに、ではなく ローカルホスト。オプション listen_address Cassandra が実行される IP アドレスを定義します。

# for cassandra01
listen_address: 172.16.1.10

# for cassandra02
listen_address: 172.16.1.15

5. 次に、デフォルト オプション rpc_address を変更します。 サーバーのIPアドレス、listen_addressと同じ値 オプション。 Cassandra クラスター環境では、すべてのクライアント接続は、デフォルトの TCP のローカル サーバー IP アドレスを経由します。 ポート 9042 .

# for cassandra01
rpc_address: 172.16.1.10

# for cassandra02
rpc_address: 172.16.1.15

6. Ctrl+X を押して、構成ファイルを保存して閉じます。 、 Y 、および Enter .

7. Cassandra 構成を編集したら、次のコマンドを実行して Cassandra サービスを開始します。このコマンドは、クラスターを自動的に開始し、IP アドレスが seeds にある他のサーバーに到達します。 オプション。

service cassandra start

8. 次に、以下のコマンドを実行して、Cassandra サービスのステータスを確認します。

service cassandra status

以下のスクリーンショットのような出力が得られます。ご覧のとおり、Cassandra サービスはアクティブ (実行中) です .

ファイアウォールを使用して Apache Cassandra クラスタを保護する

サービスを保護するためのファイアウォールの設定は、本番環境では不可欠な作業です。これにより、特定の IP アドレスまたはネットワーク範囲からのみ Cassandra クラスターへのアクセスを制限できます。

一般的な Red Hat Linux ディストリビューションでは、firewalld がデフォルトのファイアウォール ソフトウェアです。

デフォルトでは、Cassandra では 2 つの TCP ポートを開く必要があります。ポート 7000 はデフォルトのクラスター ポートで、ポート 9042 はクライアント接続用のネイティブのデフォルト トランスポート ポートです。

以下の手順に従って、ファイアウォールで Cassandra クラスターの展開を保護してください。

1. まず、すでに firewalld を持っているかどうかを確認します 以下のコマンドを実行して、サーバー上で。

dnf search firewalld

If firewalld が存在しない場合は、手順 2 と 3 に従います。 firewalld の場合 既にサーバーに存在する場合は、代わりに手順 4 にスキップしてください。

2. firewalld がない場合 システムで、次のコマンドを実行してインストールします。

dnf install firewalld -y

3. firewalld を開始します。 以下のコマンドを実行してサービスを開始します。このコマンドは firewalld を開始します SSH や DHCP クライアントなどの重要なポートとサービスを開きます。

systemctl start firewalld

デフォルトでは、firewalld はコマンドライン インターフェイス firewall-cmd を提供します。 ファイアウォール ルールを管理および維持するための

4. 次の firewall-cmd を実行します 新しいゾーンを作成するコマンド Cassandra クラスターの場合、firewalld をリロードします ルール。

# add firewalld zone cassandra-cluster
firewall-cmd --new-zone=cassandra-cluster --permanent

# reload firewalld
firewall-cmd --reload

出力メッセージ success が表示されます 、これは操作が成功したことを意味します。オプション --permanent 新しいファイアウォール ルールを永続的にします。

5. 次に、サーバー ネットワークの CIDR を cassandra-cluster に追加します。 ゾーン。このルールは、CIDR 172.16.1.0/24 のすべてのサーバーまたはクライアントを許可します 話すこと、つながること。単一の IP アドレスを追加するには、IP アドレス 172.16.1.20 を入力します .

firewall-cmd --zone=cassandra-cluster --add-source=172.16.1.0/24 --permanent

6. 次のコマンドを実行して、Cassandra サービス ポート 7000 を追加します。 と 9042 cassandra-cluster に ゾーン。

# add storage_port Apache Cassandra to the zone cassandra_cluster
firewall-cmd --zone=cassandra-cluster --add-port=7000/tcp --permanent

# add Apache Cassandra port for client connections
firewall-cmd --zone=cassandra-cluster --add-port=9042/tcp --permanent

7. 最後に firewalld をリロードします 以下のコマンドを実行して新しい設定を適用するためのルール。

firewall-cmd --reload

Cassandra クラスターは、172.16.1.0/24 を介してのみアクセスできるようになりました

Apache Cassandra クラスターのステータスを確認する

Nodetool は、Cassandra クラスターを管理および監視するためのネイティブ コマンド ユーティリティです。このツールを使用すると、テーブルやキースペース、サーバー メトリック、アプリケーション、クライアント接続メトリックなど、Cassandra クラスターのメトリック ステータスを表示できます。

通常、管理者は nodetool を実行します。 運用中の Cassandra サーバーで直接コマンドを実行して、定期的なデータベースのメンテナンスと監視を実行します。

以下の手順に従って、nodetool を使用して Cassandra クラスターを監視する基本を学びます。

1. 次のコマンドを実行して、Cassandra クラスターのステータスを確認します。

nodetool status

以下のスクリーンショットのような出力が得られます。

  • ノードがUPであることを意味します または実行中。
  • いいえ ノードがNORMALであることを意味します .
  • 住所 ノードの IP アドレスまたは URL です。
  • 読み込み Cassandra データ ディレクトリ内のファイルのサイズです。この値は 90 秒ごとに更新されます。
  • トークン ノードで利用可能なトークンの数です。
  • ホスト ID ノードのネットワーク ID です。各ノードには異なる ID があります。

2. 次に、以下のコマンドを実行して、単一ノードに関する詳細情報を取得します。

nodetool info

以下に、次のようなノードに関する詳細情報を表示できます。

  • 稼働時間
  • ヒープメモリ情報
  • 読み込み
  • キーキャッシュとカウンターキャッシュ
  • データセンターの場所

3. 次に、以下のコマンドを実行して、Cassandra クラスターの詳細を表示します。

nodetool describecluster

詳細な Cassandra クラスターを以下に示します。

  • クラスター情報 名前、デフォルトの Cassandra パーティショナー、スキーマ バージョンなど、Cassandra クラスターに関する基本情報が含まれています。
  • すべてのノードの統計 Cassandra クラスタ上のすべてのノードの現在のステータスを示します。
  • Cassandra クラスタを複数のデータ センターに構築した場合、データ センターにすべてのデータ センターが表示されます。
  • データベースのバージョン セクションには、各クラスタ ノードの Cassandra のバージョンが表示されます。
  • Cassandra クラスタで利用可能なすべてのキースペースまたはデータベースのリストは、キースペースの下にあります。 セクション。

Apache Cassandra クラスタへの接続

サーバーに Apache Cassandra パッケージをインストールすると、Cassandra Query Language Shell (CQLSH) もインストールされます。このツールを使用すると、管理者は Apache Cassandra に接続して、データベースまたはキースペースとユーザーを管理できます。

以下の手順に従って、コマンドライン cqlsh を使用して Cassandra クラスターに接続します。 .

1. cqlsh を実行します Cassandra クラスターに接続するための以下のコマンド。 Cassandra IP アドレスを指定します。クライアント接続のデフォルト ポートは 9042 です .

cqlsh 172.16.1.10 9042

Cassandra クラスターに接続すると、以下のスクリーンショットのような出力が表示されます。この例では、サーバー IP アドレス 172.16.1.10 でクラスター名 ATA クラスターを使用します。 .

2. 次に、次の CQL クエリを実行して、接続先のサーバーを確認し、クラスター名を確認し、Cassandra で使用可能なすべてのキースペースを確認します。

# show detailed host
SHOW HOST

# show cluster name
DESCRIBE CLUSTER

# list all available keyspaces (databases)
DESCRIBE KEYSPACES

以下のスクリーンショットと同様の出力が表示されます。 SHOW HOST クエリは、接続されている場所を示します。クエリ DESCRIBE CLUSTER Cassandra クラスター名とクエリ DESCRIBE KEYSPACES が表示されます Cassandra ノードのキースペースのリストを表示します。

3. 最後に、exit を入力します cqlsh からログアウトするには 環境。

結論

このチュートリアルを通じて、Linux に Apache Cassandra をインストールして構成する方法を学習しました。また、2 つの Linux サーバーを使用して Apache Cassandra クラスターを構成し、Firewalld を使用してデプロイを保護しました。

この時点で、サーバーを追加してデプロイをスケーリングし、データの高可用性、一貫性、および冗長性を提供する準備が整いました。

あなたの次は何ですか?おそらく、Cassandra クラスターで認証と承認を設定することから始めて、アプリケーションのキースペース/データベースのレプリケーションを設定します。その間、nodetool を使用して Apache Cassandra クラスターを維持する方法を学びませんか?


Linux
  1. LinuxにPythonをインストールする方法

  2. LinuxMint20にPythonをインストールする方法

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

  1. AlmaLinux / RockyLinux8にApacheCassandraをインストールする方法

  2. OracleLinux8にApacheMavenをインストールする方法

  3. Ubuntu 20.04 に Apache Cassandra をインストールする方法

  1. Ubuntu 18.04 /Ubuntu16.04およびDebian9にApacheCassandraをインストールする方法

  2. RockyLinux8にApacheKafkaをインストールする方法

  3. RockyLinux8にPython3.10をインストールする方法