CentOS6.5にcassandra2系をインストール

cassandraちゃんの動物本も買ったまま放置でしたので。
手元にある本は1.xの事が書いておりますが、とりあえず最新の方が(気分的に)良いの2.0.9を準備してきます。

CentOS 6.5
32bit
です。

cassandraのダウンロード
$ cd /usr/local

$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/cassandra/2.0.9/apache-cassandra-2.0.9-bin.tar.gz
$ tar zxvf apache-cassandra-2.0.9-bin.tar.gz 

$ mkdir -p /var/log/cassandra 
$ mkdir -p /var/lib/cassandra

おしまい。
解答したフォルダ名は適宜変更。
$ mv -f apache-cassandra-2.0.9 cassandra

実行
$ /usr/local/cassandra/bin/cassandra -f
Cassandra 2.0 and later require Java 7 or later.

java7にしろと言われたのでそちらを行います。
参考URL：http://tecadmin.net/steps-to-install-java-on-centos-5-6-or-rhel-5-6/
多分上見た方が早い

$ cd /opt/
$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-i586.tar.gz"

$ tar xzf jdk-7u60-linux-i586.tar.gz
$ cd /opt/jdk1.7.0_65/
$ alternatives --install /usr/bin/java java /opt/jdk1.7.0_65/bin/java 2
$ alternatives --config java


2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
   2           /opt/jdk1.7.0_65/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

$ alternatives --install /usr/bin/jar jar /opt/jdk1.7.0_65/bin/jar 2
$ alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_65/bin/javac 2
$ alternatives --set jar /opt/jdk1.7.0_65/bin/jar
$ alternatives --set javac /opt/jdk1.7.0_65/bin/javac 
$ java -version

java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) Client VM (build 24.65-b04, mixed mode)

※64bitの方をダウンロードしてると実行できないので注意です
$ java -version
-bash: /usr/bin/java: バイナリファイルを実行できません

$ export JAVA_HOME=/opt/jdk1.7.0_65
$ export JRE_HOME=/opt/jdk1.7.0_65/jre
$ export PATH=$PATH:/opt/jdk1.7.0_65/bin:/opt/jdk1.7.0_65/jre/bin

cassandra再度起動
$ bin/cassandra -f
Cassandra 2.0 and later require Java 7 or later.

まだjava7にしろと怒られます。
念のため、再度上のexportを一通り実行しておきます。

再挑戦
$ bin/cassandra -f
エラー: エージェントが例外をスローしました : java.lang.NullPointerException

怒られなくなりましたが、怒られます。
また色々調整です。

cassandra.batのXms,Xmxが1Gだと動かないことがあるそうなので、それぞれ512Mに編集します。
$ vi cassandra/bin/cassandra.bat 
REM ***** JAVA options *****
set JAVA_OPTS=-ea^
 -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.5.jar"^
 -Xms1G^
 -Xmx1G^
=>
REM ***** JAVA options *****
set JAVA_OPTS=-ea^
 -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.5.jar"^
 -Xms512M^
 -Xmx512M^


まだ怒られるので、cassandra.in.shを編集します。
$ echo $JAVA_HOME
これで出力されたやつをメモ
$ vi apache-cassandra-2.0.9/bin/cassandra.in.sh 

JAVA_HOME can optionally be set here
JAVA_HOME=「echo $JAVA_HOMEで出力されたパスを記入」

これで怒られなくなりました。
echo $JAVA_HOMEで何も出ないという人は上のexportをやり直そう。

cassandra実行
$ ./bin/cassandra-cli
Exception connecting to 127.0.0.1/9160. Reason: 接続を拒否されました.
Welcome to Cassandra CLI version 2.0.9

拒否されました。
とりあえずファイアウォール的なの調整してみます。
$ vi /etc/sysconfig/iptables
追記
-A INPUT -p tcp -m tcp --dport 9160 -j ACCEPT

$ /etc/init.d/iptables restart

まだ拒否されます。
なんだかPIDに追加だかなんだかがいるみたいなので下記を実行
$ ./bin/cassandra -p /var/run/cassandra.pid

cassandra再度起動
$ ./bin/cassandra-cli

Column Family assumptions read from /root/.cassandra/assumptions.json
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 2.0.9

The CLI is deprecated and will be removed in Cassandra 3.0.  Consider migrating to cqlsh.
CQL is fully backwards compatible with Thrift data; see http://www.datastax.com/dev/blog/thrift-to-cql3

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown] 


無事出来ました。
動けば満足な駄目えんじにーあなので細かいことは気にしません。