2012年3月6日火曜日

Eclipse上でCassandraを実行する


EclipseでCassandraを実行するためのメモ。
要Ant, Maven

EclipseにCassandraをロード
1. ソースを展開
2. ant build
3. ant generate-eclipse-files
4. File->Import->Existing Project into Workspace...

Run->Run Configuration...を実行し、Main classに
org.apache.cassandra.thrift.CassandraDaemon
を指定する。

VM argumentsを以下のように指定。

VM arguments:
-ea
アサーションを有効にする
-Xmx96M
最大ヒープを96Mにする
-Dcom.sun.management.jmxremote.port=7199
JMX portを7199にする
-Dcom.sun.management.jmxremote.authenticate=false
JMXのパスワード認証を無効化する
-Dcom.sun.management.jmxremote.ssl=false
JMXのSSLを無効化する
-Dcassandra-foreground=yes
Cassandraをフォアグランドで実行する
-Dlog4j.defaultInitOverride=true
log4j-server.propertiesを読ませるためにデフォルトの初期化手順をスキップ
-Dlog4j.configuration=file:/{作業用ディレクトリ}/conf/log4j-server.properties
log4jの設定ファイルを指定
-Dcassandra.config=file:/{作業用ディレクトリ}/conf/cassandra.yaml
cassandraの設定ファイルを指定

git repositoryを参照している場合、git pullでconf下の設定ファイルも上書きされてしまうので、別の作業用ディレクトリをつくり、confやdataを配置すること。

2012年2月16日木曜日

PythonのThreadプログラミング

Pythonでマルチスレッドプログラムを書く場合、2通りの方法がある。

  1. threading.Threadを継承したクラスを作成する
  2. threading.Threadオブジェクトにcallableオブジェクトを渡す
JavaでThreadを継承するか、Runnableインターフェースを実装するかというのにも似ている。

2012年2月15日水曜日

OSXでlaunchd配下のデーモンを止める

macportでtomcatを入れたのはいいが、止め方がわからなくて困った。killしても勝手に再起動してくる。調べてみるとlaunchdというデーモン配下で起動されているようで、起動停止にはお作法があるようだ。

停止方法:
# launchd unload -w /Library/LaunchDaemons/org.macports.tomcat6.plist

起動方法:
# launchd load -w /Library/LaunchDaemons/org.macports.tomcat6.plist 

2012年2月14日火曜日

CentOSのIP Alias

一つの物理ホストでCassandraを複数インスタンス実行するにはJMX Portの都合上IP Aliasが必要になる。
CentOSでIP Aliasを恒久的に設定するためのメモ。


2012年2月9日木曜日

CassandraのLeveled Compactionについて調べる

Cassandra 1.0でLeveled Compaction Strategy (LCS)がサポートされたが、DataStaxのドキュメントを読んでも今一つ動作が理解できない。
http://www.datastax.com/dev/blog/leveled-compaction-in-apache-cassandra

他にあまりドキュメントも整備されていないので、LCSの元になったGoogle LevelDBのほうを調べてみた。
http://leveldb.googlecode.com/svn/trunk/doc/impl.html

以下おおざっぱな翻訳