HadoopTimes

実践 機械学習:レコメンデーションにおけるイノベーション
技術情報

スナップショットと一貫性

企業用途のアプリケーションについて、技術的な議論が行われる際にほぼ毎回と言っていいほどスナップショット(Snapshot)が話題になっています。Hadoopのアプリケーションも例外ではありません。Jack Norris氏は業界アナリストのDonnie Berkholz氏と、What Are The Facts(事実とは何か) のビデオシリーズにて、Hadoopのコンテキストで問題の核心に到達するのに役立つスナップショットについて議論しています。Donnie氏はRedMonkという、評価の高いアナリスト企業、デベロッパに特化している業界初、唯一のアナリスト企業の方です。

こちらでビデオを視聴できます:

http://www.youtube.com/watch?v=hxSq4km8kGU

以下、会話の抜粋になります:
Jack Norris: まず、スナップショットとは何ですか、という点から話をしましょうか?

Donnie Berkholz: スナップショットとはデータのある一面であり、特定の時点でのデータ状態を示す1つのウィンドウです。スナップショットを使う理由は、回復、ユーザーエラーやデータ破損、バックアップのほか、スナップショットを作り、メインのデータセットを破壊することなく作業を始められるよう、サンドボックス内でデベロッパが扱うなど、様々です。

Jack Norris: スナップショットとはデータ・バージョニングのことだと聞いたことがあります。だから、一貫性のあるデータセットに対して、異なるアルゴリズムを作成できるということなのですね。

Donnie Berkholz: その通りです。両者が同期できるよう、バージョン・コントロールをデータのほかコードにも適用するという考え方には意味があります。

Jack Norris: スナップショットは実際、どのような動作をするのでしょうか?

Donnie Berkholz: スナップショットを知る上で重要な事は、それが正しく動作する場合、特定のポイント・イン・タイムに全てを留め置かなくてはいけないということです。ファイルの開閉、そして状況変化を待つことはできません。その理由は、異なるファイル間、クラスター内の異なるノード間で、一貫性がなくなる可能性があるからです。多くの人が望む方法でスナップショットを動作させたいのであれば、スナップショットをしている全ファイルでタイムスタンプ(時間押し)を確保しなくてはいけません。

Jack Norris: 一貫性と仰られましたが、スナップショットが一貫してない場合、もしくは時間が一定でないときに何が起こりますか?

Donnie Berkholz: スナップショットに一貫性がない場合、目にしているものが何もかも分からなくなります。何かの分析をしようとして、異なるポイント・イン・タイムでデータを入手したとします。例えば、何かの分析をしようとしている時、あなたは、ある特定の時間を目にしていると思っています。でもそうではないのです。実際には、幅広い時間を見ている。だから、得られる結果には意味がなくなる可能性があるのです。

Jack Norris: 特定のアプリケーションの動作はいかがですか?

Donnie Berkholz: 一貫性のないデータセットで作業をしているのであれば、アプリケーションの動作も同じです。アプリケーションも驚いてしまい、対処できなくなります。場合によってはクラッシュしてしまうかもしれません。

Jack Norris: スナップショットとHadoopにつきまして、何が事実か見てみましょうか?両者はどのように動作するのでしょうか?

Donnie Berkholz: 今日におけるHadoop、オープンソースHadoopにおけるスナップショットは、ファイルを閉じた時に、ファイルの状況をキャプチャすることで動作します。ファイルが開いたままでスナップショットが作成された場合、その開いたファイルは、同一クラスター上で閉じたものと一致しない可能性があります。

Jack Norris: ポイント・イン・タイムの一貫性という定義は何でしょうか?

Donnie Berkholz: あるポイント・イン・タイムのスナップショットがある場合、あなたが取得しているものはその時点で閉じているファイルのスナップショットという意味であり、開いているファイルは数分、もしくは数時間のラグがある可能性があります。

Jack Norris: 分かりました。別のシステムでは、スナップショットはどのように動作するのでしょうか?

Donnie Berkholz: スナップショットへの典型的なアプローチ (例えばバックアップソフトウェアで使用されているもの)は、その瞬間にファイルシステム上にあるファイルをそのままの状態でショットを撮り、ファイルシステム全体で一貫性を確保するというものです。

Jack Norris: そろそろ、MapRがどのように動作するかについて指摘させていただきたいと思います。MapRのスナップショットはクラスター間で動作し、開閉状態を問わず、全てのファイル間で瞬時に一貫性が確保されます。

Donnie Berkholz: それは素晴らしいアプローチのように思えます。

Jack Norris: 今回はご参加いただきましてありがとうございました。次回はポイント・イン・タイムのスナップショットとHadoopについてお話がなされます。「What are the facts(何が事実ですか)?」と質問するのを忘れないようにお願いします。

業界アナリストをお迎えしてHadoopについての議論を行っている「What Are the Facts」は短編のビデオシリーズです。シリーズの他のトピックでは、NFSディザスタ・リカバリが含まれています。 MapR.comで「What Are the Facts」全編を是非御覧ください。

こちらの記事もおすすめです