Vanilla hadoopは、コアの分散ファイルシステム(DFS)と、分析を行うプログラムを作成するためのMapReduceモデルをサポートするライブラリで構成されています。DFSは、Hadoopをスケーラブルにするためのものです。マルチノードクラスター内の複数のノードへのデータのチャンク処理を処理するため、Map Reduceは、データを使用可能なノードの個々のチャンクで機能し、並列処理を可能にします。
Hadoop分散ファイルシステム(HDFS)の基礎となったGoogleファイルシステムの論文はここにあります
MapReduceモデルの論文はここにあります
MapReduceの詳細な説明についてはこの投稿を読んでください
Cassandraは、拡張性が高く、結果整合性のある分散型の構造化されたKey-Valueストアです。これは従来のデータベースではありませんが、キーと値のペアを格納するHashtableまたはHashMapに似ています。CassandraはHDFS上で動作し、それを利用してスケーリングします。CassandraとHBaseはどちらも、GoogleのBigTableの実装です。GoogleBigTableの論文はここにあります。
BigTableは、文字列ソートテーブル(SSTable)を使用してキーと値のペアを格納します。SSTableは、キーの後に値を格納するHDFSの単なるファイルです。さらに、BigTableは、そのキーのファイルにキーとオフセットを持つインデックスを保持します。これにより、オフセット位置へのシークのみを使用して、そのキーの値を読み取ることができます。SSTableは事実上不変です。つまり、ファイルの作成後、既存のキーと値のペアに変更を加えることはできません。新しいキー/値のペアがファイルに追加されます。レコードの更新と削除はファイルに追加され、新しいキー/値で更新され、キーとトゥームストーン値で削除されます。SSTableのこのファイルでは、重複キーが許可されています。インデックスは、更新または削除が行われるたびに変更され、そのキーのオフセットが最新の値またはトゥームストーン値を指すようになります。
したがって、Cassandraの内部では、リアルタイムのデータ処理に不可欠な高速読み取り/書き込みが可能であることがわかります。一方、MapReduceを使用したVanillaHadoopは、バッチ指向のパッシブデータを処理するために使用できます。