本記事の想定オーディエンスと目的
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 が起動しませんのでご注意ください.
ご自身の環境に合ったものをローカル 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 をダウンロードします.
先ほど作成した仮想マシンの /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>