「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の動作確認を説明しました。