4

http://www.dbta.com/Articles/Columns/Notes-on-NoSQL/Cassandra-and-Hadoop---Strange-Bedfellows-or-a-Match-Made-in-Heaven-75890.aspxによる

Cassandraは、Hadoopとは多少異なるソリューションを追求してきました。Cassandraは大量のリアルタイムトランザクション処理に優れていますが、Hadoopはよりバッチ指向の分析ソリューションに優れています。

この種の使用法の違いを説明するCassandraとHadoopのアーキテクチャ/実装の違いは何ですか。(一般のソフトウェア専門用語で)

4

3 に答える 3

2

追加したかったのは、カサンドラが読み取りに適している可能性があるという誤解を招く記述があるかもしれないからです。Cassandraはランダム読み取りもあまり得意ではありません。大量のデータをランダムに読み取る方法については、他のソリューションと比較して優れていますが、ある時点で、読み取りが本当にランダムである場合、毎回ディスクにヒットすることを避けられません。単一の時間は高価であり、クラスターによっては数千ヒット/秒のように役に立たないものになる可能性があるため、ランダムなクエリをたくさん実行することを計画するのは最善ではない可能性があります。開始すると壁にぶつかります。そのように考えています。ビッグデータのすべては、シーケンシャル読み取りを行うか、シーケンシャルに保存する方法を見つけると、より効果的に機能すると思います。ほとんどの場合、リアルタイム処理を行う場合でも、クエリをバッチ処理する方法を見つけたいと考えています。これが、キーの下に何を格納するかを事前に考えて、読み取りから可能な限り多くの情報を取得するようにする必要がある理由です。また、ステートメントがトランザクションとカサンドラを同じ文で言っているのも面白いです。それは実際には起こらないからです。一方、hadoopはほぼ定義上バッチであることが意図されていますが、hadoopは分散マップリデュースフレームワークであり、dbではありません。実際、私はcassandraで多くのhadoopを見て使用しましたが、これらは拮抗的なテクノロジーではありません。ビッグデータをリアルタイムで処理することは可能ですが、データベースにアクセスするタイミングと方法について十分に検討し、注意を払う必要があります。それは実際には起こりません。一方、hadoopはほぼ定義上バッチであることが意図されていますが、hadoopは分散マップリデュースフレームワークであり、dbではありません。実際、私はcassandraで多くのhadoopを見て使用しましたが、これらは拮抗的なテクノロジーではありません。ビッグデータをリアルタイムで処理することは可能ですが、データベースにアクセスするタイミングと方法について十分に検討し、注意を払う必要があります。それは実際には起こりません。一方、hadoopはほぼ定義上バッチであることが意図されていますが、hadoopは分散マップリデュースフレームワークであり、dbではありません。実際、私はcassandraで多くのhadoopを見て使用しましたが、これらは拮抗的なテクノロジーではありません。ビッグデータをリアルタイムで処理することは可能ですが、データベースにアクセスするタイミングと方法について十分に検討し、注意を払う必要があります。

編集:ランダム読み取りを使用したことを最後に確認したときに、セカンダリインデックスの例を削除しました(ただし、Cassandraから1年以上離れています)。

于 2013-02-28T00:28:13.750 に答える
1

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は、バッチ指向のパッシブデータを処理するために使用できます。

于 2012-11-13T06:26:06.627 に答える
0

Hadoopは、分散データストア(HDFS)と分散計算フレームワーク(MapReduce)の2つの基本的なコンポーネントで構成されています。大量の入力データを読み取り、データストアとの間で出力を書き込みます。データの読み込み時間を最小限に抑えるために、マシンのクラスター上のローカルデータと並列コンピューティングを実行するため、分散データストアが必要です。

Cassandraは、線形のスケーラビリティとフォールトトレランス機能を備えたデータストアです。HadoopのMapReduceによって提供される並列計算機能が不足しています。

Hadoopのデフォルトのデータストア(HDFS)は、Cassandra、Glusterfs、Ceph、Amazon S3、Microsoft Azureのファイルシステム、MapRのFSなどの他のストレージバックエンドに置き換えることができます。ただし、それぞれの選択肢には長所と短所があります。ニーズに基づいて評価されます。

HadoopをCassandraと統合するのに役立つリソースがいくつかあります:http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configHadoop.html

于 2017-05-17T06:31:46.073 に答える