テクノロジーガイド

Apache Cassandra を CentOS 7 にインストールする

2 min read データベース 更新されました 21 Oct 2025
CentOS 7 に Apache Cassandra をインストールする手順
CentOS 7 に Apache Cassandra をインストールする手順

概要

Apache Cassandra は分散型のオープンソース NoSQL データベースで、大規模データの分散保存、可用性の高さ、単一障害点の排除を目的としています。本チュートリアルは CentOS 7 上での Cassandra 3.11 系のインストールを想定しています。Cassandra クラスターに対する対話型シェルは cqlsh、管理用のツールは nodetool です。

重要な用語(1行定義)

  • Cassandra: 分散型 NoSQL データベース。スケーラブルで高可用性。
  • CQL: Cassandra Query Language、Cassandra 用の SQLライクなクエリ言語。
  • nodetool: Cassandra ノードのステータス確認・管理ツール。
  • cqlsh: CQL を入力してクラスタに対話的に問い合わせるシェル。

前提条件

  • CentOS 7 が稼働していること(root 権限または sudo 利用)
  • ネットワークから Oracle のダウンロードや Apache リポジトリにアクセスできること
  • 最低限 Java 8 が必要(本手順では jdk1.8.0_131 を例示)

ステップ 1 — Java をインストール

まずパッケージとリポジトリを最新に更新することを推奨します。

yum -y update

更新後、Oracle Java(この例では JDK 8u131)をダウンロードしてインストールします。RPM を取得するコマンド例:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

wget が未インストールなら以下で追加できます。

yum -y install wget

ダウンロードした RPM をローカルインストールします。

yum -y localinstall jdk-8u131-linux-x64.rpm

Java のバージョン確認:

java -version

例として以下のような出力が得られます。

[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

JAVA_HOME 環境変数が設定されているか確認します。

echo $JAVA_HOME

空の場合は手動で設定します。ホームディレクトリの .bash_profile をエディタで編集します(ここでは nano を例示)。

nano ~/.bash_profile

ファイル末尾に次の行を追加します(パスはインストールした JDK に合わせて変更してください)。

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jre

設定を反映します。

source ~/.bash_profile

もう一度確認します。

[root@liptan-pc ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131/

重要: システムに既に OpenJDK がインストールされている場合、Cassandra は OpenJDK でも動作しますが、運用ポリシーに合わせて Java 実装を選択してください。

ステップ 2 — Cassandra のインストール

Apache Cassandra の公式リポジトリを追加します。リポジトリファイルを作成します。

nano /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

リポジトリを追加したら Cassandra をインストールします。

yum -y install cassandra

インストール後、systemd デーモンを再読込し、Cassandra を起動します。

systemctl daemon-reload
systemctl start cassandra

ブート時に自動起動するように有効化します。

systemctl enable cassandra

ノードのステータスを確認します。

nodetool status

Cassandra が稼働していれば次に示すような出力が得られます(例)。

[root@ip-172-31-7-136 ~]# 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  136.29 KiB  256          100.0%            b3d26649-9e10-4bee-9b3c-8e81c4394b2e  rack1

起動できない場合の基本的なトラブルシューティング

nodetool 実行時に次のようなエラーが出る場合があります。

nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.

この場合、JMX のホスト名設定が原因であることが多いです。設定ファイルを編集します。

nano /etc/cassandra/default.conf/cassandra-env.sh

ファイル内で次の行を探します。

# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname="

コメントを外して をローカルアドレスに置き換えます(例:127.0.0.1)。

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"

保存して終了後、Cassandra を再起動します。

systemctl restart cassandra

再度 nodetool status を実行して確認してください。

cqlsh を使った接続確認

Cassandra には CQL を実行する対話型シェル cqlsh が付属します。

cqlsh

接続に成功すると次のような表示になります。

[root@liptan-pc ~]# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.0 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.

追加の運用メモとセキュリティ

  • デフォルトのポート: CQL ネイティブポート 9042、JMX 7199、内部通信 7000/7001。ファイアウォール設定を必要に応じて調整してください。
  • SELinux が有効な環境ではアクセス制御により動作しない場合があります。まずはログ(/var/log/messages や systemd ジャーナル)を確認してください。
  • 本番環境ではノード間通信要求に応じたネットワーク設計、スナップショットやバックアップ方針を定めてください。

役割別チェックリスト

  • システム管理者

    • Java(JDK)をインストールして環境変数を設定する
    • Cassandra をインストールし、systemd ユニットを有効化する
    • ファイアウォールと SELinux の設定を確認する
  • データベース管理者

    • nodetool でノード状態とトークン分布を確認する
    • 定期スナップショットとバックアップの運用を設計する
    • クラスタトポロジー(データセンター、ラック)を計画する
  • アプリケーション開発者

    • CQL でスキーマ設計(パーティションキー/クラスタリングキー)を学ぶ
    • cqlsh で基本クエリ(SELECT/INSERT/UPDATE/DELETE)を実行して検証する

トラブルシュートの意思決定フロー

flowchart TD
  A[サービスが起動しない] --> B{systemctl status cassandra}
  B -->|inactive/failed| C[ジャーナル確認: journalctl -u cassandra]
  C --> D{ログにエラーあり}
  D -->|JMX 接続拒否| E[編集: /etc/cassandra/default.conf/cassandra-env.sh に JVM_OPTS を設定]
  D -->|ポート/権限問題| F[ファイアウォールと SELinux を確認]
  B -->|running| G[nodetool status 実行]
  G -->|接続拒否| E
  G -->|正常| H[cqlsh でクエリ実行]

事実ボックス(キー情報)

  • 対象 Cassandra 系列: 3.11 系(リポジトリ名に基づく)
  • Java 要件: Java 8 以上(本手順では JDK 1.8.0_131 を使用した例)
  • 主要ポート: 9042 (CQL), 7199 (JMX), 7000/7001 (ノード間)

よくある失敗例と代替アプローチ

  • 失敗例: nodetool が 127.0.0.1:7199 に接続できない → cassandra-env.sh の JMX ホスト設定を修正で解決することが多い。
  • 代替: Oracle JDK の代わりに OpenJDK を使う(ほとんどの環境で互換性あり)。
  • スケールアップが必要な場合: 単一ノードから複数ノードクラスタへ移行する際は、seed ノード設定、トークンの分配、ネットワークのレイテンシを考慮する。

受け入れ基準(Критерии приёмки)

  • systemctl start cassandra がエラーなく完了すること。
  • nodetool status でノードが UN(Up/Normal)として表示されること。
  • cqlsh でクラスタに接続し簡単な SELECT/INSERT が実行できること。

まとめ

CentOS 7 上での Apache Cassandra インストールは、主に Java の準備、公式リポジトリの追加、パッケージインストール、サービス起動の順に進めます。JMX 関連の接続拒否は設定ファイル(cassandra-env.sh)の JVM_OPTS を見直すことで解決するケースが多いです。本番利用時はバックアップ、ネットワーク設計、運用監視を事前に設計してください。

要点

  • Java を正しくインストールして JAVA_HOME を設定すること
  • リポジトリを追加して yum で cassandra をインストールすること
  • 起動後は nodetool と cqlsh で接続確認を行うこと

参考リンク

共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

Yubbyで複数サイトの動画をまとめてチャンネル作成
ツールレビュー

Yubbyで複数サイトの動画をまとめてチャンネル作成

Windows 10でドライブの空き容量バーを復元する方法
Windows

Windows 10でドライブの空き容量バーを復元する方法

Windowsでフォルダーに色を付ける方法
Windows

Windowsでフォルダーに色を付ける方法

iPhoneホーム画面のカスタマイズ完全ガイド
ガイド

iPhoneホーム画面のカスタマイズ完全ガイド

Lighttpd 1.4でmod_deflateを導入して帯域を節約
サーバー管理

Lighttpd 1.4でmod_deflateを導入して帯域を節約

Windows インストーラー パッケージ エラーの修正ガイド
トラブルシューティング

Windows インストーラー パッケージ エラーの修正ガイド