色々の話の流れでapache-cassandraを6台起動する流れに。
あまり情報も無いようなので手順を複数回に分けて書いていこうと思います。
まず最初にapache-cassandraをサーバーとしてインストールする手順を書いていきます。
実際の話サーバー利用するときに「ホームディレクトリで./cassandra -f を手動で」 なんてやっていられませんからね。
あまり情報も無いようなので手順を複数回に分けて書いていこうと思います。
まず最初にapache-cassandraをサーバーとしてインストールする手順を書いていきます。
実際の話サーバー利用するときに「ホームディレクトリで./cassandra -f を手動で」 なんてやっていられませんからね。
apache-cassandraインストール
環境としては以下を使用。
OS:Debian Lenny on Xen 3.3.1
メモリを512MBに制限。(ドキュメントでは1G以上推奨)
ベースHW
Intel CoreDuo 2core 1CPU
メモリ6G
準仮想環境
Dom0に1G割り当て
- 環境設定
- JDKインストール
- antインストール
- cassandraのビルド
- ソース取得
- 展開
- ビルド
- jar作成
- インストール
- インストール
- 起動設定
- 起動確認
cassandraをインストールするにあたってソースからビルドする為の2つのパッケージと起動用に一つのパッケージが必要となるためこれらをインストールします。
$sudo apt-get install sun-java6-jdk※趣味的な問題で non-free の sun-javaを使用していますが通常のopenjdk-6-jdkで問題無いと思います。
$sudo apt-get install ant
$sudo apt-get install jsvc
apache cassandraソースの取得
Apache CassandraはApache Software Foundationの配下にあるので自分の場合、Apache絡みはすべてRing Serverから取得しています。
今回は諸事情によりbeta版ですが0.6を取得。
今回は諸事情によりbeta版ですが0.6を取得。
$wget http://www.ring.gr.jp/archives/net/apache/cassandra/0.6.0/apache-cassandra-0.6.0-beta3-src.tar.gz最近RingServerがだんだん寂れていく感じで少々悲しいです。
ソースの展開
$tar xvfz ../src/apache-cassandra-0.6.0-beta3-src.tar.gz
ビルド
ソースのビルドを行います。
$cd apache-cassandra-0.6.0-beta3-src
$ant
jar 作成
jar ファイルを作成します。
ここら辺のjavaのお作法に関しては結構疎いです。
ここら辺のjavaのお作法に関しては結構疎いです。
$ant jar
インストール
ビルドした各ファイルを各ディレクトリに配置。
make installなんてないので自力で配置。
debianの場合、配置の場所がdebian/cassandra.installに
あるのでこれを元に以下の様なシェルを書いてみました。
make installなんてないので自力で配置。
debianの場合、配置の場所がdebian/cassandra.installに
あるのでこれを元に以下の様なシェルを書いてみました。
cassandra.install.sh
#!/bin/sh
mkdir -p /usr/share/cassandra
mkdir -p /etc/cassandra
cp -p conf/log4j.properties /etc/cassandra/
cp -p conf/storage-conf.xml /etc/cassandra/
cp -p debian/cassandra.in.sh /usr/share/cassandra/
cp -p debian/init /etc/init.d/cassandra
cp -p bin/cassandra /usr/sbin/
cp -p bin/cassandra-cli /usr/bin/
cp -p bin/nodetool /usr/bin/
cp -p bin/clustertool /usr/bin/
cp -p lib/antlr-3.1.3.jar /usr/share/cassandra/
cp -p lib/avro-1.2.0-dev.jar /usr/share/cassandra/
cp -p lib/clhm-production.jar /usr/share/cassandra/
cp -p lib/high-scale-lib.jar /usr/share/cassandra/
cp -p lib/libthrift-r917130.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-cli-1.1.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-codec-1.2.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-collections-3.2.1.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-httpclient-3.1.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-lang-2.4.jar /usr/share/cassandra/
cp -p build/lib/jars/commons-logging-1.1.1.jar /usr/share/cassandra/
cp -p build/lib/jars/google-collections-1.0.jar /usr/share/cassandra/
cp -p build/lib/jars/hadoop-core-0.20.1.jar /usr/share/cassandra/
cp -p build/lib/jars/jackson-core-asl-1.4.0.jar /usr/share/cassandra/
cp -p build/lib/jars/jackson-mapper-asl-1.4.0.jar /usr/share/cassandra/
cp -p build/lib/jars/jline-0.9.94.jar /usr/share/cassandra/
cp -p build/lib/jars/json-simple-1.1.jar /usr/share/cassandra/
cp -p build/lib/jars/junit-4.6.jar /usr/share/cassandra/
cp -p build/lib/jars/log4j-1.2.14.jar /usr/share/cassandra/
cp -p build/lib/jars/slf4j-api-1.5.8.jar /usr/share/cassandra/
cp -p build/lib/jars/slf4j-log4j12-1.5.8.jar /usr/share/cassandra/
cp -p build/apache-cassandra-0.6.0-beta3.jar /usr/share/cassandra/
cd /usr/share/cassandra
ln -s apache-cassandra-0.6.0-beta3.jar apache-cassandra.jar
chmod 755 /usr/sbin/cassandra
chmod 755 /usr/bin/cassandra-cli
chmod 755 /usr/bin/nodetool
chmod 755 /usr/bin/clustertool
chmod 755 /etc/init.d/cassandra
※ これを元にdebパッケージでも作った方が早いかもしれません。暇があったらそのうち作るかも。
起動設定
起動スクリプトの修正
debianの場合基本的にdebian/initの起動シェルがそのまま使えるので
これを流用しています。CentOSの人はこの辺は手対応になると思います。
自分の場合、open-jdkではなくsun-javaを使っているのでJAVA_HOMEを書き換えます。
debianの場合基本的にdebian/initの起動シェルがそのまま使えるので
これを流用しています。CentOSの人はこの辺は手対応になると思います。
自分の場合、open-jdkではなくsun-javaを使っているのでJAVA_HOMEを書き換えます。
--- cassandra 2010-04-01 03:16:13.000000000 +0000
+++ /home/works/build/apache-cassandra-0.6.0-beta3-src/debian/init
2010-03-17 18:34:07.000000000 +0000
@@ -17,7 +17,7 @@
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CONFDIR=/etc/cassandra
-JAVA_HOME="/usr/lib/jvm/java-6-sun/jre"
+JAVA_HOME="/usr/lib/jvm/java-6-openjdk/jre"
JSVC=/usr/bin/jsvc
JVM_MAX_MEM="1G"
JVM_START_MEM="128M"
設定ファイルの変更
$vim /etc/cassandra/storage-conf.xmlとりあえず最初は起動するだけなので コミットログディレクトリとデータディレクトリだけ書き換えます。
<commitlogdirectory>/db/cassandra/commitlog</commitlogdirectory>
<datafiledirectories>
<datafiledirectory>/db/cassandra/data</datafiledirectory>
</datafiledirectories>
</pre>
※ デフォルトの/var/lib/cassandraでよい方はそのままで。
データディレクトリの作成上記で指定したディレクトリを作成します。
OS再起動時に自動で立ち上がるように起動設定を行います。
データディレクトリの作成上記で指定したディレクトリを作成します。
$mkdir -p /db/cassandra/commitloginit設定
$mkdir -p /db/cassandra/data
OS再起動時に自動で立ち上がるように起動設定を行います。
# update-rc.d cassandra defaults起動スクリプトから起動
Adding system startup for /etc/init.d/cassandra ...
/etc/rc0.d/K20cassandra -> ../init.d/cassandra
/etc/rc1.d/K20cassandra -> ../init.d/cassandra
/etc/rc6.d/K20cassandra -> ../init.d/cassandra
/etc/rc2.d/S20cassandra -> ../init.d/cassandra
/etc/rc3.d/S20cassandra -> ../init.d/cassandra
/etc/rc4.d/S20cassandra -> ../init.d/cassandra
/etc/rc5.d/S20cassandra -> ../init.d/cassandra
#/etc/init.d/cassandra start
起動確認
$cassandra-cli --host localhost
pychodoga:/etc/cassandra# cassandra-cli --host localhost
Connected to: "Test Cluster" on localhost/9160
Welcome to cassandra CLI.
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra>show keyspaces
Keyspace
system
cassandra>
以上が表示されればOK 表示されない場合、接続できない場合は 「/var/log/cassandra」にある「output.log」「system.log」を確認。
自分はここまでほとんど問題なかったですねぇ。
次回以降複数ノードでの立ち上げを書いていきます。
※ まだ構築途中...
次回以降複数ノードでの立ち上げを書いていきます。
※ まだ構築途中...
P.S.ちなみにantでreleaseとか実行すると以下のようなものができます。(苦笑)
apache-cassandra-0.6.0-beta3-src.tar.gzを使った方が手っ取り早いかも。
apache-cassandra-0.6.0-beta3-src.tar.gzを使った方が手っ取り早いかも。
$ant release
--中略--
[tar] Building tar: /home/works/build/apache-cassandra-0.6.0-beta3-src/build/apache-cassandra-0.6.0-beta3-bin.tar.gz
[tar] Building tar: /home/works/build/apache-cassandra-0.6.0-beta3-src/build/apache-cassandra-0.6.0-beta3-src.tar.gz
BUILD SUCCESSFUL
Total time: 13 seconds
コメントする