UbuntuへのApache Cassandraのインストール

UbuntuへのApache Cassandraのインストール サーバー

「NoSQLデータベースを規模の大きなシステムで利用したい」
「MongoDBより高速なNoSQLデータベースを探している」

このような場合には、Apache Cassandraがオススメです。
この記事では、UbuntuへApache Cassandraをインストールする方法を解説しています。

本記事の内容

  • Apache Cassandraとは?
  • Apache Cassandraのシステム要件
  • Apache Cassandraのインストール
  • Apache Cassandraの動作確認

それでは、上記に沿って解説していきます。

Apache Cassandraとは?

Apache Cassandraとは、オープンソースのNoSQL分散データベースです。
NoSQLと言えば、MongoDBが身近なモノかもしれません。

MongoDBについては、次の記事で説明しています。

MongoDBと比べると、Apache Cassandraは分散データベースを前面に押し出しています。
複数台でクラスターを組んで、運用することが想定されています。

そのように運用することで、次のことを実現しています。

  • 高パフォーマンス
  • スケーラビリティ
  • 高可用性

そのため、Apache Cassandraは何千もの企業から信頼を得ています。
その意味では、Apache Cassandraは比較的大きなシステムで利用されています。

以上、Apache Cassandraについて説明しました。
次は、Apache Cassandraのシステム要件を説明します。

Apache Cassandraのシステム要件

現時点におけるApache Cassandraの最新バージョンは、4.0.4となります。

4.0.4は、2022年2月17日にリリースされています。
Apache Cassandra 4.0.4のシステム要件は、以下となっています。

  • Java 8 or Java 11
  • Python 3.6+ or Python 2.7

それぞれ、次のコマンドで確認します。

$ java --version
$ python --version

今回は、以下のOSを検証に用いています。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=20.04 
DISTRIB_CODENAME=focal 
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

そのため、この記事はUbuntuを前提にした説明となります。
Ubuntuには、デフォルトでPythonがインストールされています。

しかし、それを利用するのは避けておきましょう。
基本的には、最新版をインストールして利用するようにしましょう。

Pythonの最新版のインストールについては、次の記事で解説しています。

Javaのインストールについては、次の記事でまとめています。

少し古いバージョンですが、Java 11をインストールします。
Apache Cassandraのシステム要件である以上、これは仕方がありません。
本来ならもっと新しいバージョンのJavaを利用したいところです。

それぞれのインストールが完了したら、バージョンを確認しましょう。

Python

$ python --version 
Python 3.10.5

Java

$ java --version 
openjdk 11.0.15 2022-04-19 
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1) 
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

システム要件をクリアしていれば、事前の準備は完了です。

以上、Apache Cassandraのシステム要件について説明しました。
次は、Apache Cassandraのインストールを説明します。

Apache Cassandraのインストール

デフォルト状態では、Apache Cassandraはaptで認識されていません。
つまり、 Apache CassandraがOS標準のリポジトリに登録されていないのです。

$ sudo apt info cassandra 
Package: cassandra 
State: 実際のパッケージではありません (仮想) 
N: 候補が存在しないので、パッケージ cassandra の候補バージョンを選べません 
N: 純粋な仮想パッケージのため、パッケージ 'cassandra' のバージョンを選べません 
N: パッケージが見つかりません

だから、まずはリポジトリに登録するところから始めます。
4系であれば、次のようにして登録します。

$ echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list 

登録できたら、パッケージの更新を行います。
簡単に言うと、aptコマンドで認識できるようにします。

$ sudo apt update
~ 
取得:1 https://downloads.apache.org/cassandra/debian 40x InRelease [3,902 B] 
エラー:1 https://downloads.apache.org/cassandra/debian 40x InRelease 
  公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY E91335D77E3E87CB 
パッケージリストを読み込んでいます... 完了 
W: GPG エラー: https://downloads.apache.org/cassandra/debian 40x InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY E91335D77E3E87CB 
E: リポジトリ http://www.apache.org/dist/cassandra/debian 40x InRelease は署名されていません。 
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。 
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

しかし、上記のようエラーが出てしまいます。
追加したApache Cassandraのリポジトリが、パッケージ管理ツール(apt)としては怪しいとのことです。

そこで、追加したモノが信用できるリポジトリであることをaptに教えてあげましょう。
aptに教えてあげるには、以下のコマンドを用います。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key

「$key」には、エラーで出ている「E91335D77E3E87CB」を設定します。
実際に実行した結果は、以下。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E91335D77E3E87CB 
Executing: /tmp/apt-key-gpghome.3BjJzpF6VY/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys E91335D77E3E87CB 
gpg: 鍵E91335D77E3E87CB: 公開鍵"Michael Semb Wever <mick@thelastpickle.com>"をインポートしました 
gpg: 処理数の合計: 1 
gpg:               インポート: 1

鍵のインポートが、上手くいったようです。
では、再度パッケージを更新しましょう。

sudo apt update

今回は、エラーなく更新が完了しました。
これにより、aptで最新のApache Cassandraを認識できるようになっています。

$ sudo apt info cassandra 
Package: cassandra 
Version: 4.0.4 
Priority: extra 
Section: misc 
Maintainer: Eric Evans <eevans@apache.org> 
Installed-Size: 58.8 MB 
Depends: openjdk-8-jre-headless | java8-runtime, adduser, python3 (>= 3.6), procps 
Recommends: ntp | time-daemon 
Suggests: cassandra-tools 
Conflicts: apache-cassandra1 
Replaces: apache-cassandra1 
Homepage: http://cassandra.apache.org 
Download-Size: 47.5 MB 
APT-Sources: http://www.apache.org/dist/cassandra/debian 40x/main amd64 Packages 
Description: distributed storage system for structured data 
 Cassandra is a distributed (peer-to-peer) system for the management 
 and storage of structured data.

認識できていますね。
あとは、次のコマンドを実行するだけです。

$ sudo apt install -y cassandra

Apache Cassandraのインストールは、すぐに終了します。

以上、Apache Cassandraのインストールを説明しました。
最後は、Apache Cassandraの動作確認を説明します。

Apache Cassandraの動作確認

Apache Cassandraは、インストールした時点で起動済みです。
Apache Cassandraの起動状況は、次のコマンドで確認できます。

$ sudo systemctl status cassandra 
● cassandra.service - LSB: distributed storage system for structured data 
     Loaded: loaded (/etc/init.d/cassandra; generated) 
     Active: active (running) since Thu 2022-06-09 18:54:45 JST; 10min ago 
       Docs: man:systemd-sysv-generator(8) 
      Tasks: 51 (limit: 9508) 
     Memory: 2.2G 
     CGroup: /system.slice/cassandra.service 
             └─34834 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss> 
 6月 09 18:54:45 testsrv systemd[1]: Starting LSB: distributed storage system for structured data... 
 6月 09 18:54:45 testsrv systemd[1]: Started LSB: distributed storage system for structured data.

Apache Cassandraが起動している状態で、クラスタの状況を確認します。
クラスタの状況は、次のコマンドで確認できます。

nodetool status

クラスタと言っても、まだ今回インストールした1台だけですけどね。
実際に実行した結果は、以下。

$ 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%            999d246c-1525-4b76-8ced-9959ef8c32b7  rack1

ここまで確認できれば、問題ありません。

以上、Apache Cassandraの動作確認を説明しました。

タイトルとURLをコピーしました