私はSpark(Berkeley)クラスタコンピューティングシステムに取り組んでいます。私の研究では、Redis、Memcachedbなどの他のメモリ内システムについて学びました。誰かが私にSPARKとREDIS(とMEMCACHEDB)の比較を与えることができれば素晴らしいと思います。スパークはこれらの他のインメモリシステムよりもどのようなシナリオで優位性がありますか?メモリ内クラスタコンピューティングシステムの比較
答えて
完全に異なる獣です。
Redisとmemcachedbは分散ストアです。 Redisは、さまざまなデータ構造を特徴とするオプションの永続性を備えた純粋なインメモリシステムです。 Memcachedbは、Berkeley-DB上にmemcached APIを提供します。いずれの場合も、OLTPアプリケーション、または単純なリアルタイム分析(オンザフライ・データ集約)のために使用される可能性が高くなります。
Redisとmemcachedbの両方に、格納されたデータを効率的に並列に反復するメカニズムがありません。保存されたデータを簡単にスキャンして処理することはできません。彼らはこれのために設計されていません。また、クライアント側のシャーディングを使用する以外は、クラスタ内でスケールアウトすることはできません(Redisクラスタの実装は進行中です)。
スパークは、メモリ内の分散データセットを提供することで、大規模な分析ジョブ(特に反復ジョブ)を迅速化するシステムです。 Sparkを使用すると、クラスタのマシン上で効率的な反復的なマップ/リダクションジョブを実装できます。
RedisとSparkはどちらもメモリ内のデータ管理に依存しています。しかし、Redis(とmemcached)は他のOLTP NoSQLストアと同じ球場でプレイしますが、SparkはHadoopのmap/reduceシステムに似ています。
Redisは、サブミリ秒の遅延で高スループットで多数の高速ストレージ/検索操作を実行するのに適しています。 Sparkは、大量のデータに対して機械学習、グラフ解析、対話型データマイニングなどの大規模反復アルゴリズムを実装することに輝きます。
更新:ストームに関する追加質問
質問が嵐にスパークを比較することである(下記のコメントを参照してください)。
スパークは、既存のデータボリュームが大きい場合、データをプロセスに移動するのではなく、データを移動する方が安価であるという考えに基づいています。各ノードはそのデータセットを格納(またはキャッシュ)し、ジョブはノードに送信されます。したがって、プロセスはデータに移動します。 I/Oを避けるためにメモリストレージが積極的に使用され、反復アルゴリズム(前のステップの出力が次のステップの入力である場合)を効率的にする点を除けば、Hadoop map/reduceと非常に似ています。 Sharkは、Sparkの上に構築されたクエリエンジンです(アドホック分析クエリをサポートしています)。
スパークの完全な構造的反対であるとStormを見ることができます。 Stormは分散ストリーミングエンジンです。各ノードは基本プロセスを実装し、データアイテムは相互接続されたノードのネットワークに出入りします(Sparkとは逆です)。 Stormを使用すると、データはプロセスに移行します。
両方のフレームワークは、大量のデータの計算を並列化するために使用されます。
しかし、Stormは、生成された/収集された多数の小さなデータ項目(Twitterストリーム上でリアルタイムでいくつかの集計関数や解析を計算するなど)を動的に処理するのに優れています。
Sparkは、Sparkクラスタにインポートされた既存のデータ(Hadoopなど)のコーパスに適用され、インメモリ管理による高速スキャン機能を提供し、反復アルゴリズムのI/Oのグローバルな数を最小限に抑えます。
- 1. 客観的なメモリ比較
- 2. MongoDB内のドキュメントの比較
- 3. ifステートメント内の比較?
- 4. ペアワイズ比較:1つのリスト内のサブリストを比較する
- 5. ソリューション内のフォルダを無視して比較する比較
- 6. Quickblox iOS - カスタムオブジェクトリクエスト内の日付の比較
- 7. Ifステートメント内の文字列の比較
- 8. シーケンス内の隣接要素の比較
- 9. リスト内の項目の比較
- 10. SQL - テーブル内の日付の比較
- 11. データベース内のテーブルとデータの比較
- 12. SQL内のデータの並列比較
- 13. 行の内容を比較するツール
- 14. Powershell - フォルダの内容を比較する
- 15. テーブル内の値を比較する
- 16. stl :: sort()内の比較関数
- 17. SQL内の画像を比較
- 18. 内部クラス:AndroidとJavaの比較
- 19. リスト内の要素を比較する
- 20. MongoDBの内部オブジェクトとコレクションを比較し値を比較する方法は?
- 21. TFS/VSの比較/比較ツール
- 22. C++構造体とメモリのクラスの比較
- 23. CouchDBとMongoDBとの比較(メモリ使用率)
- 24. SQL比較でNULLを比較する
- 25. 比較条件と比較条件
- 26. 比較
- 27. 比較
- 28. 比較
- 29. 比較
- 30. スキーマの比較
ストームはどうですか?あなたはそれをスパーク(またはサメ)とどのように比較できますか? – void
私の更新を見てください... –
更新ありがとうございます。気にしないでもう1つの質問があります。 Sparkには、リアルタイム分析のためのツール「Spark Streaming」があります。 Storm(別のリアルタイム解析ツール)に匹敵しますか?それにはどんな利点がありますか? – void