Cassandra

Cassandra インストール (Single-Node)

本記事の想定オーディエンスと目的

Cassandra を初めてインストールする人.
私自身が,最もシンプルな Single-Node のインストールで躓いたので,初めての方のお助けになればと思いました.
同趣向の記事は日本語・英語ともに数本ありますが,バージョンや環境の違いによる影響で,2017年11月時点では,そのままだと上手くいかないようです.
(逆に本記事も,近い将来,無用になると予想されますが,少なくとも現時点で,スムーズにインストールできる内容を書き記したいと思います)

環境

新規に構築した VirtualBox 上の CentOS-7 仮想マシンを想定します.
使用する Cassandra のバージョンは現時点の最新 3.11.1 です.こちらが Java 9 に未対応ですので,Java 8 を使用するのが肝要です(私は Java 9 を使用してハマりました)

詳細は以下の通りです.
Windows 10
VirtualBox 5.1.28
CentOS-7-x86_64-Minimal-1611
Java SE 8u151 (jdk1.8.0_151)
apache-cassandra-3.11.1

参考にしたサイト

主に以下の 2つの英文サイトを参考にしました.

How To Install Cassandra and Run a Single-Node Cluster On a Ubuntu VPS
2013年の記事です.

Cassandra Tutorial
書かれた時期は不明ですがさらに古いようです.
無事インストールに成功後は,よいチュートリアルだと思います.

1. Java 8 インストール

※Java 9 をインストールすると Cassandra が起動しませんのでご注意ください.

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

ご自身の環境に合ったものをローカル PC にダウンロードします.
私は jdk-8u151-linux-x64.tar.gz をダウンロードしました.

仮想マシンにこの .tar.gz を格納するための適当なディレクトリを作成します(私は root 直下に temp を作成しました)

# mkdir ~/temp/

WinSCP などでここに先ほどダウンロードした .tar.gz を格納し,解凍します.

# cd ~/temp/
# tar zxvf jdk-8u151-linux-x64.tar.gz

解凍した JDK を /usr/local/ 下に移します(ディレクトリ名は /java/)

# mv jdk1.8.0_151 /usr/local/java/

パスを通します./etc/profile をエディタで開いて

# vi /etc/profile

以下を profile の最後に記述.

JAVA_HOME=/usr/local/java/jdk1.8.0_151
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
JRE_HOME=/usr/local/java/jdk1.8.0_151
PATH=$PATH:$HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

Java Alternatives を設定します.

# update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_151/bin/java" 1
# update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_151/bin/javac" 1
# update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_151/bin/javaws" 1
# update-alternatives --set java /usr/local/java/jdk1.8.0_151/bin/java
# update-alternatives --set javac /usr/local/java/jdk1.8.0_151/bin/javac
# update-alternatives --set javaws /usr/local/java/jdk1.8.0_151/bin/javaws

仮想マシンを再起動.

# reboot

2. Cassandra インストール

オフィシャルサイトからのミラーサイトから apache-cassandra-3.11.1-bin.tar.gz をダウンロードします.

http://www.apache.org/dyn/closer.lua/cassandra/3.11.1/apache-cassandra-3.11.1-bin.tar.gz

先ほど作成した仮想マシンの /temp/ ディレクトリに,WinSCP などで .tar.gz を格納し,解凍します.

# cd ~/temp/
# tar zxvf apache-cassandra-3.11.1-bin.tar.gz

解凍した Cassandra を /etc/ 下に移します(ディレクトリ名は /cassandra/)

# mv apache-cassandra-3.11.1 /etc/cassandra/

ログ等に使用するフォルダを作成し,書込み権限を付与します.

# mkdir /var/lib/cassandra/
# mkdir /var/log/cassandra/
# chmod 777 /var/lib/cassandra/
# chmod 777 /var/log/cassandra/

パスを通します./etc/profile をエディタで開いて

# vi /etc/profile

以下を profile の最後に記述.

export CASSANDRA_HOME=/etc/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin

再起動.

# reboot

3. Cassandra 作業用のユーザを作成し起動へ

root user のまま Cassandra を起動しようとすると下記メッセージが出ますので,別にユーザを作ります.

Running Cassandra as root user or group is not recommended - please start Cassandra using a different system user.
If you really want to force running Cassandra as root, use -R command line option.
# useradd user

/etc/cassandra/ ディレクトリにアクセス権を付与.

# chmod -R 777 /etc/cassandra/

ユーザ変更.

# su user
$ cassandra -f

これで起動します(停止は Ctrl + c)

セッションを複製し,ユーザを変更し,CQL シェルを起動.

# su user
$ cqlsh

CQL シェルが下記の通り起動すれば,インストールと起動に成功しています.

[hadoop@localhost root]$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.1 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>