MapReduce:フォールトトレラントな分散計算フレームワーク。MapReduceを使用すると、ハードウェアによる障害を防ぐために多くの作業を行うことで、膨大な量のデータを操作できます。MapReduceは処理速度が遅いため、その場で結果を計算するのには適していません。(典型的なMapReduceジョブは、マイクロ秒ではなく、数分または数時間かかります)
MapReduceジョブは、ファイル(またはデータストア)を入力として受け取り、結果のファイルを書き込みます。これらの結果をアプリケーションで使用できるようにする場合、このデータをアクセス可能な場所に配置するのはユーザーの責任です。これはおそらく低速であり、表示できる値と、現在の状態のシステムを表す値との間に遅れが生じます。
リアルタイムシステムの構築にMapReduceを使用することを検討する際に重要な違いは、モデルのトレーニングとモデルの適用です。モデルパラメーターがすぐに変更されないと思われる場合は、それらをMapReduceに適合させ、モデルを適用するときにこれらの事前適合パラメーターにアクセスするメカニズムを使用できます。
Storm:リアルタイムのストリーミング計算システム。Stormはオンラインフレームワークであり、この意味で、実行中のアプリケーションと対話するサービスを意味します。MapReduceとは対照的に、アプリケーションで処理される際に(ファイル全体ではなく)小さなデータを受け取ります。データに対して実行する操作のDAGを定義します。Stormの一般的で単純な使用例は、カウンターを追跡し、その情報を使用してリアルタイムダッシュボードに入力することです。
Stormには、データの永続化とは何の関係もありません(必ずしも)。ここで、ストリーミングは、気になる情報を保持し、残りを捨てることを意味する別の方法です。実際には、おそらくデータを既に記録している永続化レイヤーがアプリケーションに存在するため、懸念の適切かつ正当な分離になります。
詳細を知りたい場合...
パラメーターをMRに適合させ、モデルを別の方法で適用するリアルタイムシステムについて詳しく知りたい場合は、リアルタイムの推奨エンジンの構築に関する講演のスライドをご覧ください。 HBase。
リアルタイムのカウントと永続性を興味深い方法で融合した優れた論文は、Google News Personalization:Scalable Online Collaborative Filteringです。
MRとStormのもう1つの興味深い結婚はSummingBirdです。Summingbirdでは、StormまたはMRを介して適用できるデータ分析操作を定義できます。