Cassandraをlocalにセットアップし、SparkShellでアクセスするまで
CassandraをMacOSXにローカルモードでセットアップし、
SparkShellでアクセスするところまでを試したので、メモを残しておきます。
利用したバージョンは以下の通り
- Mac OS X El Capitan 10.11.2
- apache-cassandra-3.1.1
- spark-1.6.0-bin-hadoop2.6
Cassandraの起動
Cassandraのサイトから以下のファイルをダウンロードします。
Apache Cassandra
http://cassandra.apache.org/
対象ファイル名:
apache-cassandra-3.1.1-bin.tar.gz
以下のとおり、~/opt
配下に展開します。
$ mkdir ~/opt
$ cd ~/opt
$ tar zxf ~/Downloads/apache-cassandra-3.1.1-bin.tar.gz
以下のようにCASSANDRA_HOMEの環境変数を設定します。
$ export CASSANDRA_HOME=~/opt/apache-cassandra-3.1.1/
Cassandra用の各種ディレクトリを作成します。
$ mkdir -p $CASSANDRA_HOME/data/data
$ mkdir -p $CASSANDRA_HOME/data/commitlog
$ mkdir -p $CASSANDRA_HOME/data/hints
$ mkdir -p $CASSANDRA_HOME/saved_caches
以下のコマンドでcassandraを起動します。
$ $CASSANDRA_HOME/bin/cassandra -f
cqlshで接続確認と確認用テーブルの作成
CASSANDRA_HOME環境変数を設定した状態で以下のコマンドを入力して、cqlshを起動します。
$ $CASSANDRA_HOME/bin/cqlsh
キースペースを作成する。
> create keyspace first_keyspace with replication = {'class':'SimpleStrategy', 'replication_factor':1};
キースペースに入る。
> use first_keyspace;
テーブルを作成する。
> create table first_table (name text PRIMARY KEY, value text);
テーブルにレコードを挿入する。
> insert into first_keyspace.first_table (name, value) values ('hoge', 'fuga');
SparkShellから接続
※SparkShellの使い方はこのあたりを参考にして下さい。 → http://takemikami.com/2015/12/07/MacSparkS3.html
以下のコマンドで、SparkShellを起動します。
$ $SPARK_HOME/bin/spark-shell --packages com.datastax.cassandra:cassandra-driver-core:3.0.0-rc1 --master local
以下のScalaコードで、前項でinsertしたデータを参照します。
> import com.datastax.driver.core.Cluster
> import com.datastax.driver.core.Host
> import com.datastax.driver.core.Metadata
> val cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
> val session = cluster.connect();
> session.execute("use first_keyspace")
> val res = session.execute("select * from first_keyspace.first_table");
> res.all.toArray.foreach(println _)