分123コミットログとデータディレクトリを設定する次はコミットログとデータディレクトリの設定を行います。Cassandraは,書き込み時には操作をすべてコミットログに追加で書き込んでいき,その実体(Memtableといいます)はメモリ上にカラムファミリごとに展開していく仕組みになっています。Memtableはサイズの閾値等をもっており,その閾値に達するとディスクに書き出します。この操作のことを「フラッシュ」といい,ディスクに書き出す構造のことを「SSTable」といいます。SSTableは一度書き出されるとその内容は不変で,実際の物理データとしては以下の3つがセットで書き出されます。インデックスブルームフィルタデータファイルインデックスとブルームフィルタは読み込みを高速化するための仕組みです(本連載で今後分量の都合がつけば詳しくご説明します⁠)⁠。このような内部構造をもっているため,Cassandraではコミットログの書き込むディレクトリと実際のデータを各ディレクトリを明確に分離しておくのが望ましいです。コミットログはCommitLogDirectoryで設定します。SSTableを永続化する実データ部分はDataFileDirectoryで設定します。DataFileDirectoryは複数設定することが可能です。設定例としては以下のようになります。<DataFileDirectory>C:\cassandra\data</DataFileDirectory></DataFileDirectories>ノードを設定する最後はノードの設定です。Cassandraはマスターノードを持たないアーキテクチャのため,特定のノードをマスター指定したりする必要がありません。そのため,ノードの設定は非常に簡潔になっています。単一ノードで動かしたい場合,Seed設定で以下のようにローカルホストを指定します。非常にシンプルですね。</Seeds>デフォルトの設定では,このようにローカルホストだけをノードとして追加しています。簡単ですが,以上で必要な設定はすべて終了です。storage-conf.xmlの全体像はどうなっているかでは,storage-conf.xmlがどのようになっているか見てみましょう。今回は分量の都合で割愛した部分もありますので,その部分は省略しました。開発用なので1ノード。...</Storage>ここまでで,Cassandraの基本的な設定について説明しました。いますぐにすべてを覚えなくても大丈夫です。今後コードを書いていく中で徐々に覚えていくことができるでしょう。開発環境を構築しよう本連載では,開発環境としてEclipseを想定しています。開発環境を構築してみましょう。以下のような手順でEclipse上にJavaプロジェクトを作成しておきます。1Eclipseを起動してJavaプロジェクトを作成します。プロジェクト名は「cassandra-examples」とします(名前はなんでも結構です⁠)⁠。2前回動かしたCassandraのlibディレクトリ(%CASSANDRA_HOME%\lib)からjarをすべてコピーして,cassandra-examples/libに置きます。3コピーしてきたjarすべてにクラスパスを通しておきます。Cassandraへアクセスするための基本を知ろうでは,このプロジェクトでサンプルコードを書いてみましょう。CassandraへはThriftでのRPCを介して接続する必要があります。接続のためのインスタンスであるTSocketとTProtocolの実装クラスを生成します。ソケットを事前に開けておく必要があるので,CassandraにRPCする前にTSocket.open()を呼び出しておいてください。最後に,CassandraにアクセスするクライアントコードであるCassandra.Clientインスタンスを生成します。その際にTProtocolインスタンスを渡す必要があるので注意してください。以下は,localhostで9160番ポートで起動しているCassandraに接続しにいく実装コードです。//適宜,適切な例外を投げるなどしてください。Cassandra.Client(protocol);これで呼び出し部分は完成です。Thriftのために使ったソケットはフラッシュして中身をクリアした後,クローズします。//適宜,適切な例外を投げるなどしてください。データディレクトリ著者プロフィール大谷晋平(おおたにしんぺい)オープンソースプログラマ。WebフレームワークT2の開発をしながらHadoop/NoSQLミドルウェアにも手を出す。最近ではもっぱらHadoop,Cassandra,Avro,kumofsなどに興味津々。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。