[ Apache ] Mac OSX(Snow Leopard)へ「Cassandra」をインストール

cassandra
cassandra posted by (C)kishir

さて、「Cassandra(かさんどら)」が2010年2月18日に「Apache Software Foundationトッププロジェクト」として、承認されたよっと。

ちなみにCassandraはFacebookのほか、Rackspace、Digg、Twitterなどで、利用されているようですよー。

分散データベースの「Cassandra」がApacheのトップレベルプロジェクトに

早速、Apache Cassandra(オープンソースの分散データベース管理システム)をMacOSXに突っ込んでみる。

インストールした環境は、「Mac OSX 10.6.3(Snow Leopard)」。

Cassandraは「Java」で動作するみたいだが、自分のMacOSXにJavaって入ってるっけかな?とまずは確認してみようっと。

$ which java
/usr/bin/java
$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)

ほい。Snow Leopardは「1.6.0_17」らしいね。

ひとまずインストールされているので、次はCassandra。

まずは下記からダウンロード可能。現在(10.04.07)の最新ファイルは「0.5.1」でした。

$ cd /opt/local/src
$ curl -O

次にCassandara用のログディレクトリ・ファイルを作成

# ログディレクトリの設定がデフォルトで、「/var/log/」、各種データディレクトリなどは「/var/lib」となっている。

後ほど展開する「apache-cassandra-0.5.1-bin.tar.gz」の中にある、「conf」ディレクトリに記載されているので、

それに併せて設定しました。

「ログ」は「log4j.properties」、「各種データディレクトリなど」は「storage-conf.xml」となっていた。

ログディレクトリとファイルの作成

$ cd /var/log
$ sudo mkdir cassandra
$ sudo chown -R ユーザー名:グループ名 cassandra/
$ cd cassandra/
$ touch system.log

各種データなどのディレクトリを作成

$ cd /var/lib
$ sudo mkdir cassandra
$ sudo chown -R ユーザー名:グループ名 cassandra/
$ cd cassandra/

ファイルを展開

$ /opt/local/cassandra
$ cp /opt/local/src/apache-cassandra-0.5.1-bin.tar.gz ./
$ tar zxvf apache-cassandra-0.5.1-bin.tar.gz
$ cd apache-cassandra-0.5.1

Casandra起動

 $ cd /opt/local/cassandra/apache-cassandra-0.5.1/bin
 $ ./cassandra -f
Listening for transport dt_socket at address: 8888
INFO - Saved Token not found. Using 153942045966679935844972374572678363172
INFO - Starting up server gossip
INFO - Cassandra starting up...

起動したよっと。(「-f」オプションはフォアグラウンドで実行)

で、他のコマンドは、「分散データベース管理システムCassandraをDebianで動作させる」を参考

デーモンとして起動は、

$ ./cassandra -p /var/run/cassandra.pid

デーモン実行を停止は、

$ kill -KILL `cat /var/run/cassandra.pid`

クライアントツールの起動手順は、

$ ./cassandra-cli --host localhost --port 9160
Exception java.net.ConnectException: Connection refused
org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
       at org.apache.thrift.transport.TSocket.open(TSocket.java:185)
       at org.apache.cassandra.cli.CliMain.connect(CliMain.java:65)
       at org.apache.cassandra.cli.CliMain.main(CliMain.java:151)
Caused by: java.net.ConnectException: Connection refused
       at java.net.PlainSocketImpl.socketConnect(Native Method)
       at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
       at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
       at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
       at java.net.Socket.connect(Socket.java:525)
       at java.net.Socket.connect(Socket.java:475)
       at org.apache.thrift.transport.TSocket.open(TSocket.java:180)
       ... 2 more
Connected to localhost/9160
Welcome to cassandra CLI.
 
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra>

ここまででけたので、次はPythonやらPHPから扱えるようにバインディングとなる「Thrift」をインストールしようっと。

「Mac OS X」に「MacPorts」で「Apache2.2.4」を入れてみた

MacBook」にとりあえず環境を作りたいので、

Apache2.2.4」を入れてみる事にした。

ローカル環境なので、試してみるって事を前提に

あんまりこだわらずにやってみることに決めた。

ターミナルから

sudo /opt/local/bin/port install apache2

これを実行するだけ。

そうすると、

/opt/local

apache2

ってディレクトリでインストールされる。

その中を見てみた。

$ ls -l
total 0
drwxr-xr-x 17 root admin 578 Jul 15 14:11 bin
drwxr-xr-x 11 root admin 374 Jul 15 14:11 build
drwxr-xr-x 4 root admin 136 Jul 15 14:11 cgi-bin
drwxr-xr-x 8 root admin 272 Jul 15 14:57 conf
drwxr-xr-x 22 root admin 748 Jul 15 14:11 error
drwxr-xr-x 8 root admin 272 Jul 15 14:11 htdocs
drwxr-xr-x 159 root admin 5406 Jul 15 14:11 icons
drwxr-xr-x 47 root admin 1598 Jul 15 14:11 include
drwxr-xr-x 6 root admin 204 Jul 15 14:11 logs
drwxr-xr-x 148 root admin 5032 Jul 15 14:11 manual
drwxr-xr-x 63 root admin 2142 Jul 15 14:11 modules

こんな感じでインストールされてる。

で、バージョンを確認してみる。

$ /opt/local/apache2/bin/httpd -v
Server version: Apache/2.2.4 (Unix)
Server built: Jul 15 2007 14:08:11

うん。
ちゃんとバージョンが「2.2.4」でインストールされてる。

ここで確認出来たので、とりあえずちゃんと動くか確認するために
「DocumentRoot」を自分の環境に合わせる。


#DocumentRoot: The directory out of which you will serve your
#documents. By default, all requests are taken from this directory, but
#symbolic links and aliases may be used to point to other locations.

#DocumentRoot “/opt/local/apache2/htdocs”
DocumentRoot “/自分の環境のパスを記載/htdocs”

で、この箇所の下の方にある


#This should be changed to whatever you set DocumentRoot to.

#<Directory “/opt/local/apache2/htdocs”>
<Directory “/自分の環境のパスを記載/htdocs”>

と修正したら、保存。

このままだと、変更箇所が反映されないので、

$sudo /opt/local/apache2/bin/apachectl restart

なんかで「Apache」を再起動させる。

で、自分の環境のパスを記載の下の/htdocs/配下に適当なファイルを作成する。
今回は元々の「Apache」をインストールした時のデフォルトに設定されている
ディレクトリ「/opt/local/apache2/htdocs/」の中にある

index.html

をコピーした。

$sudo cp /opt/local/apache2/htdocs/index.html /自分の環境のパスを記載/index.html

こんな感じ。

出来たらブラウザからアクセスしてみる。

http://localhost/index.html

It works!

って表示されたらOK

細かい設定は後でやる事を前提で、

とりあえず動作は確認出来た。