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