42

withを使用HBaseするよりも使用する方が良いのはなぜですか?CassandraHadoop

誰でもこれについて詳細な説明をしてもらえますか?

ありがとう

4

2 に答える 2

78

どちらかが優れているとは思いません。どちらかだけではありません。これらは非常に異なるシステムであり、それぞれに長所と短所があるため、ユース ケースによって大きく異なります。それらは間違いなく、同じインフラストラクチャ内で相互に補完して使用できます。

違いをよりよく説明するために、 Cassandraから写真を借りたいと思います: Definitive Guideでは、CAP 定理について説明しています。彼らが言うことは、基本的にどの分散システムでも、一貫性可用性分断耐性のバランスを見つける必要があり、これらのプロパティのうち 2 つしか現実的に満たすことができないということです。そこから、次のことがわかります。

  • Cassandra は、AvailabilityPartition Toleranceのプロパティを満たしています。
  • HBase は、一貫性分断耐性のプロパティを満たしました。

キャップ

Hadoop に関して言えば、HBase は HDFS の上に構築されているため、すでに Hadoop スタックがある場合は非常に便利に使用できます。また、Hadoop の標準エンタープライズ ディストリビューションである Cloudera でもサポートされています。

しかし、Cassandra は Hadoop との統合も強化されています。つまり、人気が高まっている Datastax Brisk です。また、Cassandra が提供する出力形式を使用して、Hadoop ジョブの出力から Cassandra クラスターにデータをネイティブにストリーミングできるようになりました (BulkOutputFormatたとえば)。Cassandra が単なるスタンドアロン プロジェクトであったということはありません。

私の経験では、Cassandra はランダム読み取りには優れていますが、スキャンにはそれほど適していません。

写真に少し色を付けるために、私は仕事で同じインフラストラクチャで両方を使用してきましたが、HBase は Cassandra とは非常に異なる目的を持っています。私は Cassandra を主にリアルタイムの非常に高速なルックアップに使用してきましたが、HBase は低レイテンシ要件の重い ETL バッチ ジョブに多く使用しています。

これは本当にブログ投稿に値する質問なので、これ以上続けるのではなく、2 つのシステムの主な違いをまとめた記事を紹介したいと思います。要するに、IMHO に優れたソリューションはありません。どのシステムがより適しているかを確認するには、ユース ケースをよく検討する必要があります。

于 2013-02-19T06:46:45.313 に答える
15

両方のデータベースの長所と短所を比較し、ビジネス要件に応じて慎重に決定する必要があります。

カサンドラ

長所:

  1. CAP理論の可用性パーティショニング結果整合性を満たします。
  2. 単一障害点のない大規模なクラスターでスケーラブル
  3. 開発用のSQLライクな言語により、開発者はRDBMSのバックグラウンドから簡単に移行できます
  4. 結果整合性セマンティクスがユースケースに十分である限り、Cassandra は優れた単一行読み取りパフォーマンスを備えています。
  5. Datastaxのサポートは大きなアドバンテージ
  6. 書き込み用に最適化

短所:

  1. 範囲ベースの行スキャンをサポートしていません
  2. アトミック コンペア アンド セットをサポートしていません
  3. Cassandra はコプロセッサー機能をサポートしていません`
  4. Cassandra は、列名がわかっている列ファミリーのセカンダリ インデックスをサポートしています。(動的列ではありません)。
  5. Cassandra の集計は Cassandra ノードではサポートされていません

HBase

長所:

  1. 強力な一貫性とCAP理論の一貫性と分割を満たしています。
  2. RDBMS に相当するトリガーとストアドプロシージャ
  3. Hadoop のサポート
  4. 範囲ベースの行スキャン
  5. アトミック コンペア アンド セットのサポート
  6. 読み取り用に最適化され、単一書き込みマスターでサポート
  7. 集計のサポート
  8. 高いスケーラビリティとデータの自動シャーディング

短所:

  1. 開発のための親しみやすい言語がない
  2. 単一の行に対する読み取り負荷分散はサポートされていません
  3. 行間操作はアトミックではありません
  4. HBase マスターが 1 つしか使用されていない場合の単一障害点

詳細については、記事 1記事 2、およびこのプレゼンテーションをご覧ください。

于 2016-01-19T10:02:41.900 に答える