140

これは素朴な質問ですが、私は NoSQL パラダイムに不慣れで、それについてあまり知りません。したがって、誰かがHBaseとHadoopの違いを明確に理解するのを手伝ってくれるか、違いを理解するのに役立つかもしれないいくつかの指針を教えてください.

今まで、私はいくつかの調査と評価を行ってきました。私の理解では、Hadoop は HDFS で未加工のデータ (ファイル) のチャンクを操作するためのフレームワークを提供し、HBase は Hadoop 上のデータベース エンジンであり、基本的に未加工のデータ チャンクではなく構造化データを操作します。Hbase は、SQL と同様に、HDFS 上の論理レイヤーを提供します。それが正しいか?

4

6 に答える 6

257

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

  1. 大きなファイルのストリーミング アクセス用に最適化されています。
  2. write-once read-many イデオロギーに従います。
  3. ランダムな読み取り/書き込みをサポートしていません。

HBase

  1. キーと値のペアを列形式で格納します (列は列ファミリーとしてまとめられます)。
  2. 大規模なデータ セット内の少量のデータへの低レイテンシ アクセスを提供します。
  3. 柔軟なデータ モデルを提供します。

Hadoop はオフラインのバッチ処理などに最適ですが、HBase はリアルタイムが必要な場合に使用されます。

同様の比較は、MySQL と Ext4 の間で行われます。

于 2013-06-05T01:17:14.663 に答える
0

HDFS は Java ベースの分散ファイル システムであり、Hadoop クラスター内の複数のノードに大規模なデータを格納できます。一方、HBase は NoSQL データベースです (NTFS や MySQL と同様)。

HDFS と HBase の両方が、構造化、半構造化、非構造化などのあらゆる種類のデータを分散環境に格納します。

HDFS と HBase の違い

  • HBase は、大規模なデータ セット内の少量のデータへの低レイテンシー アクセスを提供しますが、HDFS は高レイテンシー操作を提供します。
  • HBase はランダムな読み取りと書き込みをサポートし、HDFS は WORM (Write once Read Many または Multiple times) をサポートします。
  • HDFS は基本的または主に MapReduce ジョブを介してアクセスされますが、HBase はシェル コマンド、Java API、REST、Avro、または Thrift API を介してアクセスされます。

HDFS は大規模なデータ セットを分散環境に格納し、そのデータのバッチ処理を活用します。

HBase は、各列が一緒に格納される列指向の方法でデータを格納するため、リアルタイム処理を利用して読み取りが高速になります。

ここに画像の説明を入力

于 2019-10-10T06:57:10.697 に答える