スポンサーリンク

このドキュメントの内容は、以下の通りです。

NoSQL の1つである Cassandra を動かしてみます。

ダウンロード


まずは、ファイルをダウンロードします。

http://www.apache.org/dyn/closer.cgi?path=/cassandra/1.1.0/apache-cassandra-1.1.0-bin.tar.gz

tar.gz のファイルを展開します。

tar zxfp apache-cassandra-1.1.0-bin.tar.gz
cd apache-cassandra-1.1.0

FreeBSD の場合は、 ports からインストールしましょう。

設定


各種ディレクトリのパスなどを修正します。

/var を適当なディレクトリに変更しましょう。
vim conf/cassandra.yaml

ログファイルのディレクトリを必要に応じて修正します。

vim conf/log4j-server.properties

vim conf/cassandra-env.sh

メモリがあまりないなら、減らしておきます。
MAX_HEAP_SIZE="400M"
HEAP_NEWSIZE="100M"

data , commitlog, cache データのディレクトリを作ります。
#mkdir -p ~/tmp/var/lib/cassandra/data
#mkdir -p ~/tmp/var/lib/cassandra/commitlog
mkdir -p ~/tmp/lib/var/cassandora/{data,commitlog,saved_caches}

デーモンの起動


cassandra プロセスを起動します。 -f オプションをつけて実行すると、フォアグラウンドで実行されます。
フォアグラウンドの場合、C-c で終了できます。

./bin/cassandra -f

クライアントの起動


他のシェルを起動して、クライアントを起動してみましょう。

./bin/cassandra-cli -h localhost

listen のアドレスを 127.0.0.1 ではないものに変更しているなら、
適切なものに変えて、つないでください。
./bin/cassandra-cli -h `hostname`

Keyspace の作成


MySQL における DB の代わりが、 Cassandra では、KeySpace です。
まずは、 KeySpace を作成します。

create keyspace DEMO;
use DEMO;

次に、SQL における Table, Cassandra では、 Column Family を作ります。

[default@DEMO] create column family Users;
create column family Users;
SnappyCompressor.create() threw an error: java.lang.NoClassDefFoundError Could not initialize class org.xerial.snappy.Snappy

set で値を insert し、 get でデータを取得します。

$ ./bin/cassandra-cli -h localhost
Connected to: "Test Cluster" on 127.0.0.1/9160
Welcome to Cassandra CLI version 1.1.0

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

[default@unknown] create keyspace DEMO;
7f4c238b-8f97-3767-bdc7-39c7f0000cfd
Waiting for schema agreement...
... schemas agree across the cluster
[default@unknown] use DEMO;
Authenticated to keyspace: DEMO
[default@DEMO] create column family Users;
d77f11f0-f055-379c-8f57-9efffde1a64d
Waiting for schema agreement...
... schemas agree across the cluster
[default@DEMO] 

[default@DEMO] set Users[utf8('1234')][utf8('name')] = utf8('foo');
set Users[utf8('1234')][utf8('name')] = utf8('foo');
Value inserted.
Elapsed time: 52 msec(s).
[default@DEMO] set Users[utf8('1234')][utf8('pw')] = utf8('hoge');
set Users[utf8('1234')][utf8('pw')] = utf8('hoge');
Value inserted.
Elapsed time: 7 msec(s).


get Users[utf8('1234')];
=> (column=6e616d65, value=foo, timestamp=1337425464756000)
=> (column=7077, value=hoge, timestamp=1337425563001000)
Returned 2 results.
Elapsed time: 41 msec(s).

MX4J


mx4j がない場合には、 max4j のパッケージをインストールしてください。

Will not load MX4J, mx4j-tools.jar is not in the classpath


apache-cassandra-1.1.0/bin/cassandra.in.sh を編集します。
BSD と Linux では、mx4j のインストールされるパスがことなるので、両方をチェックしています。

# The java classpath (required)
CLASSPATH=$CASSANDRA_CONF:$cassandra_bin

# BEGIN kaoru
BSD_CLASSPATH=/usr/local/share/java/classes/*.jar
LINUX_CLASSPATH=/usr/share/java/mx4j/*.jar

for jar in $BSD_CLASSPATH $LINUX_CLASSPATH; do
	CLASSPATH=$CLASSPATH:$jar
done
# END kaoru


FreeBSD と Cassandra で Snappy がエラー


クライアント側
FreeBSD で Cassandra をただ単にダウンロードしてきて、動かしたら、 Snappy でエラーが出ました。
default@DEMO] create column family Users;
SnappyCompressor.create() threw an error: org.xerial.snappy.SnappyError [FAILED_TO_LOAD_NATIVE_LIBRARY] null


サーバ側
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at org.xerial.snappy.SnappyNativeLoader.loadLibrary(SnappyNativeLoader.java:52)


解決が難しいので ports から入れてしまうのが簡単でよいです。


このオライリーの Cassandra の本を読みました。
手っ取り早く、 Cassandra のことが知りたいなら、ざっと読むのが良いです。




参照しているページ (サイト内): [2012-05-08-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー