ccmを使って検証用のCassandraクラスタを立ち上げてみます。
準備
最新の 3.1.5
でもPython2.7でテストしているようです。はじめ3.8のみインストールされた環境で実行したところランタイムエラーが起きました。
ccm をアンインストールしてから、Python2.7のインストールして、再び pip2 install ccm
で ccm をインストールしたところ問題なく動きました。
そのため2系に依存しているのかと考えていましたが、poetry でPython3.8.1の環境をつくったところ動きました。
またccmではインストールや操作を簡単にしてくれますが依存するJDK, Antはインストールしてくれません。自分でsdkmanなどで準備する必要があります。
1
2
3
4
5
6
7
|
# install python2.7
# Open Java 8.0 with sdkman
$ sudo apt-get install python
$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py \
| python2.7 /dev/stdin
$ pip2 install -U pip
$ pip2 install ccm
|
またはpoetryを使ってください。
1
2
3
|
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py \
| python /dev/stdin --yes --no-modify-path
$ poetry add ccm
|
つかってみる
ccmは検証用にローカルにノードを立ち上げます。その時に使われるデバイスはループバックデバイスです。
ccmは末尾が1のアドレスから昇順でバインドを試みます。
そのためループバックデバイスでIPエイリアスを設定しないとなりません。次のようにipコマンドを使ってください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# クラスタ定義
$ ccm create example -v 3.11
# クラスタにノード数を設定
$ ccm populate -n 3
# ノード分のIPをループバックデバイス(lo)に設定
$ ip address add 172.0.0.1/8 dev lo
$ ip address add 172.0.0.2/8 dev lo
$ ip address add 172.0.0.3/8 dev lo
# クラスタ起動
$ ccm start
# クラスタの状態確認
$ ccm status
# ノード1を落とす
$ ccm node1 down
# ノード2にcqlshで接続する
$ ccm node2 cqlsh
|
ref.