1

現在、多数の Web サイトやストアから大量のリアルタイム イベントを収集し、その後の分析やレポート作成を行う、非常に書き込みの多い Web 分析アプリケーションを使用しています。

最初に計画したアーキテクチャには、リクエストを処理する Web サーバーのクラスターが含まれ、すべてのデータを Cassandra クラスターに書き込み、同時にリアルタイムの集計レポート用に多数のカウンターを更新しました。また、CassandraFS で Hadoop を直接利用して (datastax が提供する HDFS の代替として)、より複雑な分析のために Cassandra にあるデータで Map Reduce ジョブをネイティブに実行することも計画しています。MapR ジョブの出力は、Cassandra の ColumnFamilies にネイティブに書き戻されます。Hadoop map reduce は、書き込みが多いメインの cassandra クラスターの読み取り専用レプリカで実行されます。アイデアは、複数のデータ ホップを回避し、分析用のすべてのデータを 1 つのリポジトリに格納することでした。

最近では、ノードの頻繁な停止と応答時間の悪さを伴う cassandra クラスターの管理と成長に関する問題について耳にし、実際に直面しています。Couchbase は、応答時間と動的に成長し、クラスターを管理する点で、はるかに優れているようです。そのため、Cassandra を Couchbase に置き換えることを検討しています。

ただし、これにはいくつかの疑問が生じます。

  1. Couchbase は、ほとんどシーケンシャルな書き込みが多いシナリオで適切に拡張できますか? 書き込まれる生データが読み戻されることはめったになく、集計されたメトリックのみが読み戻されるため、このシナリオではインメモリ キャッシングをあまり利用していません。さらに、Couchbase が非常に頻繁に (または常に) データを書き戻すためにディスクにアクセスする必要がある場合に何が起こるかについては、あまり読むことができませんでした。最終的に Cassandra よりもパフォーマンスが低下するのでしょうか?

  2. Hadoop インターフェイスはどうなりますか? Couchbase には独自の map reduce 機能がありますが、範囲が限られていることは承知しています。単一のデータベースからすべての分析とレポートをサポートできるようにするには、CouchbaseDB と HDFS の間でデータをやり取りする必要がありますか?

4

1 に答える 1

0

私は最近、クライアント要件の他のオプションの中で Cassandra と Couchbase を評価したので、両方のデータストアに光を当てることができます。

Couchbase は管理が非常に簡単で、サーバーをノードにインストールすると、ダッシュボードからクラスターを完全に管理できます。ただし、データ サイズが大きくなると、couchbase は Cassandra ほどにはスケーリングしません。また、Couchbase と HDFS/Hadoop をシームレスに統合する方法も見つかりませんでした。

Cassandra は、超高速の書き込みスループットで非常に優れたパフォーマンスを発揮しますが、サーバー側の集計機能はありません。ノードを追加または削除するたびにクラスターのバランスを再調整する必要があるため、クラスター管理は Couchbase よりも少し難しくなります。それとは別に、パフォーマンスの観点からは、スキーマを適切に設計している限り、Cassandra はほぼシームレスに実行されます。

Hive 用の Datastax Enterprise ソリューションで高度な分析のために map-reduce を実行する余裕がある場合は、Cassandra にとどまることをお勧めします。クラスターサイズが大きくなります。

于 2013-08-01T23:40:46.380 に答える