Cassandraをすばやくインストールして実験を開始する方法

画像



Cassandra - DynamoGoogle Big Tableのアイデアに基づいた分散データベース



主な機能の概要:





インストールの準備



RubyでCassandraを知り始めるのは便利です。インストールされていると思います。 ここで、同名のruby gemをインストールします。これにより、Cassandraのアセンブリが簡単になります。



  sudo gem install cassandra --source http://gemcutter.org 


他の宝石と一緒に、thriftもインストールされます(大まかに言って、これは異なる言語間の仲介です)。

Cassandra-gemには、cassandraの最新バージョンを迅速に構築するのに役立つ便利なrakeタスクがありますが、システム全体では使用できず、cassandra-gemフォルダー内でのみ使用できます。 すばやくアクセスするために、ホームディレクトリへのリンクを作成しました。



ln -s /usr/lib/ruby/gems/1.8/gems/cassandra-0.8.0/ ~/cassandra_gem







gem environment



コマンドを使用して、インストールされたgemの場所を確認できます。私の場合は/usr/lib/ruby/gems/1.8です。 cd cassandra_gem



ディレクトリに移動します。ここで、rake: rake -T



実行できるすべてのリストを理解することをお勧めします。 ここに別のgem echoeをインストールする必要がある場合があります。



Cassandraをインストールする



それでは、データベースを組み立てましょう。 チームでこれを行うことができます



rake cassandra







ここで私は間違って終わったいくつかの事件がありました



tar xzf apache-cassandra-0.6.0-beta2-bin.tar.gz

tar: apache-cassandra-0.6.0-beta2-bin.tar.gz: Cannot open: No such file or directory







これは通常そうではありませんが、cassandraの新しいベータ3バージョンがリリースされ、gemはまだ更新されていないため、ベータ2をダウンロードしようとします。 一般に、これはすぐに修正されますが、これにつまずいた場合は、 こちらからgem'a(0.8)のこのバージョンのbeta2をダウンロードできます 。 次に、ホームディレクトリにcassandraフォルダーを作成し、ダウンロードしたapache-cassandra-0.6.0-beta2-bin.tar.gzファイルをそこに移動します。 コマンドを再度実行します。



rake cassandra







cassandraをビルドするには、antとivy-retrieveが必要です。 念のため、 ここで表示できるコンパイル出力をコピーしました 。 データベースが自動的に起動しますが、最初にデータを保存するためのパスを設定する必要があります。そうしないと何も機能しません。 デフォルトパスにはスーパーユーザー権限が必要です。



構成ファイルの構成



データストレージ用のフォルダーを作成しましょう。



cd ~

mkdir cassandra_data

cd !$

mkdir bootstrap callouts commitlog data staging

touch system.log







構成ファイルは、〜/ cassandra / server / confおよび〜/ cassandra_gem / confの2つのディレクトリに保存されます。 gemを使用してcassandraを実行するため、そこから構成ファイルがロードされるため、編集する必要があるのはそれらのファイルです。



ロガーの設定を変更します。



sudo gedit ~/cassandra_gem/conf/log4j.properties









log4j.appender.R.File=data/logs/system.log





に置き換える

log4j.appender.R.File=~/cassandra_data/logs/system.log





本番環境では、このロガーは無効になっています。



storage-conf.xmlの設定:



ディレクトリセクションも同じ方法で変更します(絶対パスを使用します)。 これで、Cassandraが正常に起動するはずです。



データ構造のカスタマイズ



データ構造はstorage-conf.xmlでも定義されています。



理解するために、リレーショナルデータベースの用語を使用します。 大まかに言うと、Cassandraのデータ構造はハッシュです。



キースペース-すべてのデータベースのリスト

キースペース-テーブルを含むデータベース

ColumnFamily-「列」をオンラインで作成できるテーブル

CompareWithは、キーの順序を示します。 通常、アルファベット順に(CompareWith = "UTF8Type")または時間順に(CompareWith = "TimeUUIDType")並べ替えられます



ColumnFamilyには、レギュラーとスーパーの2つのタイプがあります。 スーパーは、各列に任意の数の他の列が格納されることを意味します。 このタイプは、投稿に多くのコメントが含まれるモデルに適しています。 当然、SuperColumnでは、キー自体と他のサブ列(CompareSubcolumnsWith)の両方を整理できます。 たとえば、コメントを時間順に並べ、CompareSubcolumnsWith =“ TimeUUIDType”の順に並べたいとします。



遅かれ早かれ、一貫性レベルなどの用語に出くわすでしょう。 これはシステムの信頼のようなものです。つまり、記録中にcassandraが複数のノードにデータを書き込むまで待機する場合(設定可能)、一貫性レベルは可能な限り高くする必要があります。 少なくとも1台のマシンで記録を待つのに十分な場合は、1を設定します。値レベルは0です-データが記録されるのを待たずに、記録にデータを送信して忘れます。 後者はもちろん最速で、最初は最長です。 通常、生産は0に設定されます。



フェザーテスト



デフォルトでは、いくつかのキースペース(Twitter、Multiblog、MultiblogLong、場合によってはCassandraObject)がstorage-confで構成されます。これは使用します。 irbコマンドを使用して、rubyコンソールに入ります。



 irb(メイン):001:0> require 'cassandra'
 => true

 irb(メイン):002:0> client = Cassandra.new 'Twitter'、 'localhost:9160'
 =>#<Cassandra:69944556734180、@ keyspace = "Twitter"、@ schema = {}、@ servers = ["localhost:9160"]>

 irb(メイン):003:0> client.insert:Users、 'user_name@web.com'、{'screen_name' => 'Suvo'}
 => nil

 irb(メイン):004:0> suvo = client.get:Users、 'user_name@web.com'
 =>#<OrderedHash {"screen_name" => "Suv​​o"}>

 irb(メイン):005:0> suvo ['screen_name']
 =>「Suvo」




user_name@web.com



にはキーがあります。

client.insertコマンドは何も返さないことに注意してください。 Cassandraへの書き込みは常に成功しています。 次に、レコードを更新して別のフィールドを追加してみます。



 irb(メイン):006:0> client.insert:Users、 'user_name@web.com'、{'status' => 'Hello world!'}
 => nil

 irb(メイン):007:0> client.get:Users、 'user_name@web.com'
 =>#<OrderedHash {"status" => "Hello world!"、 "Screen_name" => "Suv​​o"}>




もう1つの重要なリクエスト(getおよびinsert以外)は、slice_rangeです。 このクエリを使用すると、特定のキー範囲の値を取得できます。



そのため、私たちはなんとかしてcassandraをインストールし、テストデータの書き込みと読み取りを行いました。



さらに、Cassandraをがっかりさせる可能性のあること、Ruby on RailsでCassandraに対して行ったこと、Cassandraに対して行ったことを共有したいと思いますが、記事は完全には適合しませんでした。 ここから読み続けてください



All Articles