Mapreduceの欠点は何ですか? mapreduceには多くの利点があります。しかし、mapreduceのデメリットも知りたいです。
私はむしろ尋ねたいですmapreduceが適切な選択ではない場合?意図したとおりに使用していれば、不利になることはないと思います。そうは言っても、mapreduceが適切な選択ではない場合があります:
他にもいくつかの場合があります。しかし、ここで重要なことは、それをどれだけうまく使っているかということです。たとえば、MRジョブが数ミリ秒で結果を出すことを期待することはできません。あなたもそれをその不利な点として数えることはできません。間違った場所で使用しているだけです。そして、それはどのテクノロジーにも当てはまります、IMHO。簡単に言えば、行動する前によく考えてください。
それでも必要な場合は、mapreduceの欠点として上記の点を考慮することができます:)
HTH
MapReduceがうまく機能しないいくつかのユースケースを次に示します。
まず第一に、それはマップ出力をストリーミングします、それをメモリに保持することが可能であれば、これはより効率的です。私はもともとMPIを使用してアルゴリズムをデプロイしましたが、スケールアップすると一部のノードがスワッピングを開始したため、移行を行いました。
Namenodeはメタデータを追跡します分散ファイルシステム内のすべてのファイル。私はHadoopの本(Hadoopの動作中)を読んでいますが、Yahooはメタデータをファイルあたり約600バイトと推定していると述べています。これは、ファイルが多すぎると、Namenodeで問題が発生する可能性があることを意味します。
ストリーミングAPIを使用したくない場合は、Java言語でプログラムを作成する必要があります。たとえば、C++からの翻訳を行いました。これにはいくつかの副作用があります。たとえば、JavaはCに比べて文字列のオーバーヘッドが大きいです。私のソフトウェアはすべて文字列に関するものなので、これはある種の欠点です。
正直なところ、不利な点を見つけるのは本当に難しいと思いました。 mapreduceが解決した問題は、mapreduceが導入した問題よりもはるかに大きかった。 このリストは完全ではありません、最初のいくつかのコメントです。明らかに、それはビッグデータに向けられていることを覚えておく必要があり、それが最高のパフォーマンスを発揮する場所です。独自の特性を持つ他の配布フレームワークがたくさんあります。