下記サイトを参考
https://www.nttpc.co.jp/technology/cassandra.html
・サーバー構成を次の通り作成
Cassandraのサーバー 2台 (CentOS 7)
ホスト名: cassandra1, cassandra2
2台にした理由は、3台にするとかなりメモリを食うため
・vagrantで複数サーバ作成は以下参考にした https://www.yoheim.net/blog.php?q=20170704 https://qiita.com/48hands/items/05c2ad0ea89fe13afd57
Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. #config.vm.box = "bento/centos-6.8" (1..2).each do |no| name = "cassandra#{no}" config.vm.define name do |node| node.vm.box = "centos/7" node.vm.hostname = name node.vm.network "private_network", ip: "192.168.33.4#{no}" end end end
2台が相互に通信できることを確認
以下の課題が発生 ・sshでログインできるのに、cyberduckに接続できない
・cyberduckにログインできたが、ファイルをアップロードできない
・仮想マシンで3台分のメモリをくう(1台あたり1G) 見直しが必要
ただ環境作って、とりあえず複数サーバでcassandraに接続したいだけなのに、なかなかさせてくれない・・・
3回はほどvagrant destroyをした。
(1)Cassandra インストールとクラスター作成 vagrant ssh-config
cassandra1
cassandra2
以下を2台(cassandra1、cassandra2)のサーバで実施 (下記はcassandra1の例)
①インストールパッケージ取得
②解凍して保存 アップロード先ディレクトリ作成
[vagrant@cassandra1 ~]$ pwd /home/vagrant [vagrant@cassandra1 ~]$ mkdir tmp [vagrant@cassandra1 ~]$ chmod 777 tmp
.アップロード 上記tmpにアップロード
・移動先ディレクトリに移動
[vagrant@cassandra1 tmp]$ pwd /home/vagrant/tmp [vagrant@cassandra1 tmp]$ ls apache-cassandra-3.11.3-bin (1).tar.gz [vagrant@cassandra1 ~]$ sudo chmod 777 /usr/local [vagrant@cassandra1 ~]$ mv apache-cassandra-3.11.3-bin\ \(1\).tar.gz /usr/local [vagrant@cassandra1 ~]$ cd /usr/local
・解凍
[vagrant@cassandra1 local]$ tar -zxvf apache-cassandra-3.11.3-bin\ \(1\).tar.gz
・解凍後
[vagrant@cassandra1 local]$ pwd /usr/local [vagrant@cassandra1 local]$ ls apache-cassandra-3.11.3 bin games lib libexec share apache-cassandra-3.11.3-bin (1).tar.gz etc include lib64 sbin src
シンボリックをはる
[vagrant@cassandra1 local]$ ln -s /usr/local/apache-cassandra-3.11.3 /usr/local/cassandra [vagrant@cassandra1 local]$ ls -ld /usr/local/*cassandra* drwxrwxr-x. 10 vagrant vagrant 208 Nov 4 02:46 /usr/local/apache-cassandra-3.11.3 -rw-rw-r--. 1 vagrant vagrant 37317433 Nov 4 02:36 /usr/local/apache-cassandra-3.11.3-bin (1).tar.gz lrwxrwxrwx. 1 vagrant vagrant 34 Nov 4 02:59 /usr/local/cassandra -> /usr/local/apache-cassandra-3.11.3
③Javaのインストール
[vagrant@cassandra1 local]$ sudo yum install java
④設定ファイル(cassanra.yaml)の編集 変更前にバックアップ
[vagrant@cassandra1 local]$ cd /usr/local/cassandra//conf [vagrant@cassandra1 conf]$ cp -p cassandra.yaml cassandra.yaml.bk sudoにて記載通りrootユーザで変更。 /usr/local/cassandra/conf/cassandra.yaml
⑤Cassandra起動スクリプトの作成 ※Init.dの把握要 Init.dはシンボリックが張られている。初心者にはわからない。
[vagrant@cassandra1 conf]$ cd /etc [vagrant@cassandra1 etc]$ cd rc.d [vagrant@cassandra1 rc.d]$ ls init.d rc.local rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d [vagrant@cassandra1 rc.d]$ cd init.d [vagrant@cassandra1 init.d]$ ls README functions netconsole network [vagrant@cassandra1 init.d]$ sudo vi cassandra
下記内容を記載
#!/bin/sh case "$1" in start) /usr/local/cassandra/bin/cassandra -R -p /var/run/cassandra.pid > /dev/null 2>&1 echo "Start Cassandra" ;; stop) kill `cat /var/run/cassandra.pid` echo "Stopped Cassandra" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
⑥Cassandra起動 権限の変更要
[root@cassandra1 init.d]# chmod 777 cassandra [root@cassandra1 init.d]# /etc/init.d/cassandra start Start Cassandra
⑦起動状態の確認
[root@cassandra1 init.d]# cd /usr/local/cassandra/conf [root@cassandra1 conf]# /usr/local/cassandra/bin/nodetool status nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.
なぜか繋がらない。全サーバで行わないといけないのか。
もう一つのサーバで上記作業を行っても繋がらない。
でも繋がっている時もある。
^C[root@cassandra1 conf]# /usr/local/cassandra/bin/nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 192.168.33.41 148.39 KiB 256 100.0% c2c8a839-7322-4cfc-b84c-a6de3c5ab6b4 rack1 UN 192.168.33.42 114.5 KiB 256 100.0% 3dd12b70-d283-4023-86ff-c34fd1ce13b9 rack1 [root@cassandra1 conf]# /usr/local/cassandra/bin/nodetool status nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'.