Apache Cassandraは、オープンソースのNoSQLデータベースです。その主な機能の1つは、独自のフォールトトレランスを提供する分散型の性質です。データセンター間でデータを複製できるということは、すべてのシステム管理者が夢見ている(またはそのような設定ができて本当にうれしい)サイトの1つが失われることなく本番環境が損なわれないことを意味します。
このチュートリアルでは、Cassandraリポジトリを追加してRed Hat Enterprise Linux 8にCassandraをインストールし、ソフトウェアをインストールし、サービスを稼働させて管理しやすくするために必要なその他すべてをセットアップします。
このチュートリアルでは、次のことを学びます。
- Cassandraリポジトリを追加する方法
- 必要なパッケージをインストールする方法
- systemdユニットファイルを修復する方法
- cqlshでCassandraをテストする方法
RHEL8でのCassandraのシステムテーブルのクエリ
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Red Hat Enterprise Linux 8 | |
Apache Cassandra 3.11 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
Redhat8にcassandraをインストールする方法ステップバイステップの説明
Red Hat Enterprise Linuxはrpmベースのパッケージを使用し、ApacheCassandraはrpmリポジトリを提供します。すべての依存関係が含まれているわけではありませんが、解決する必要のある問題はそれほど面倒ではありません。必要なのは、事前にインストールされているJava 8(OpenJDKまたはOracle JDK)だけです。
- 公式のApacheリポジトリからCassandraをインストールします。これを可能にするために、テキストファイル
/etc/yum.repos.d/cassandra.repo
を作成します。 次の内容で:[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
- リポジトリ定義が整ったら、
dnf
を使用してCassandraをインストールできます。 :# dnf install cassandra
インストールでは、開発者のキーを受け入れるように求められます。トリッキーなものを公開していないと確信しているため、インストールを続行するためのキーを受け入れます。
- インストールされたパッケージには、SysVのinitスクリプトと
systemd
が含まれています それ自体のためにサービスファイルを生成することはできますが、それはうまく機能しません。少しの試行錯誤から身を守るために、単純な新しいサービスファイル/etc/systemd/system/cassandra.service
を作成します。 次の内容で:
[Unit] Description=Apache Cassandra After=network.target [Service] 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
-
systemd
新しいサービス定義を認識するためにリロードする必要があります:# systemctl daemon-reload
- これで、systemdを使用してサービスを管理できるようになりました。 Cassandraの開始、停止、およびステータスの取得を行うことができます:
# systemctl start|stop|status cassandra
実行状態は、上記で作成したユニットファイルで以下の出力のようなものを提供するはずです:
# systemctl status cassandra cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-01-08 18:39:32 CET; 24s ago Main PID: 6615 (java) Tasks: 58 (limit: 12544) Memory: 1.1G CGroup: /system.slice/cassandra.service 6615 java -Xloggc:/var/log/cassandra/gc.log -ea [...]
- オプションで、起動時に自動起動を有効にすることができます:
# systemctl enable cassandra
- いくつかのサンプルクエリを実行して、機能しているデータベース管理システムをテストするには、
cqlsh
を使用します。 CQLシェルにアクセスします。このツールはインストールに付属していますが、python
このツールは依存していません。dnf
を使用してインストールする必要があります :# dnf install python2
- Cassandraに対してサンプルクエリを実行するには、CQLシェルを入力します。
# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
にHELPを使用します - ユーザーデータはまだデータベースに挿入されていないため、システムテーブルからいくつかのデータをクエリして、インストールが正常に機能していることを確認します。
cqlsh> SELECT keyspace_name, table_name FROM system_schema.tables where keyspace_name = 'system_auth'; keyspace_name | table_name ---------------+-------------------------------- system_auth | resource_role_permissons_index system_auth | role_members system_auth | role_permissions system_auth | roles (4 rows)