Hadoopは、基本的にFS(Hadoop分散ファイルシステム)、計算フレームワーク(MapReduce)、管理ブリッジ(Yet Another Resource Negotiator)の3つです。HDFSでは、大量のデータを分散(高速な読み取り/書き込みアクセスを提供)および冗長(可用性を向上)の方法で格納できます。また、MapReduceを使用すると、この巨大なデータを分散して並列的に処理できます。ただし、MapReduceはHDFSだけに限定されません。FSであるため、HDFSにはランダムな読み取り/書き込み機能がありません。順次データアクセスに適しています。そして、ここでHBaseが登場します。これは、Hadoopクラスターの上で実行されるNoSQLデータベースであり、データへのランダムなリアルタイムの読み取り/書き込みアクセスを提供します。
構造化データと非構造化データの両方をHadoopとHBaseに保存することもできます。どちらも、シェルや他のAPIなど、データにアクセスするための複数のメカニズムを提供します。また、HBaseはデータを列形式でキー/値ペアとして格納し、HDFSはデータをフラットファイルとして格納します。両方のシステムの主な特徴は次のとおりです。
Hadoop
- 大きなファイルのストリーミングアクセス用に最適化されています。
- 追記型イデオロギーに従います。
- ランダムな読み取り/書き込みをサポートしていません。
HBase
- キーと値のペアを列形式で格納します(列は列ファミリーとしてまとめられます)。
- 大きなデータセット内から少量のデータへの低レイテンシアクセスを提供します。
- 柔軟なデータモデルを提供します。
Hadoopはオフラインバッチ処理に最適ですが、HBaseはリアルタイムのニーズがあるときに使用されます。
MySQLとExt4の間でも同様の比較が行われます。