sql >> データベース >  >> NoSQL >> MongoDB

Hadoop Map/Reduceと組み込みのMap/Reduce

    私の答えは、HadoopMRの知識と経験およびMongoDB MRの学習に基づいています。主な違いを確認してから、選択の基準を定義してみましょう。違いは次のとおりです。

    1. HadoopのMRはJavaで記述できますが、MongoDBのMRはJavaScriptで記述できます。
    2. HadoopのMRはすべてのコアを利用できますが、MongoDBのMRはシングルスレッドです。
    3. Hadoop MRはデータと併置されませんが、MongoDBは併置されます。
    4. Hadoop MRには数百万のエンジン/時間があり、出力のサイズが大きい、データの偏りなど、多くのコーナーケースに対処できます
    5. Hadoop MRエンジンの上に構築された、Pig、Hive、Cascadingなどのより高いレベルのフレームワークがあります。
    6. Hadoop MRが主流であり、多くのコミュニティサポートを利用できます。

    上記から、次の選択基準を提案できます。
    単純なグループ化とフィルタリングが必要な場合は、Mongo DB MRを選択します。マップとリデュースの間で、激しいシャッフルを期待しないでください。言い換えれば、単純なことです。

    複雑で計算量の多いMRジョブ(たとえば、いくつかの回帰計算)を実行する場合は、hadoopMRを選択します。 mapとreduceの間に大量の、または予測できないサイズのデータ​​があることも、HadoopMRを示唆しています。

    Javaは、特に統計的なライブラリが多い、より強力な言語です。それを考慮に入れる必要があります。



    1. mongodbは検索クエリで文字列として_idを取得します

    2. MongoDBelemmatch配列内の複数の要素

    3. Django Rest FrameworkでRedisキャッシュを実装するにはどうすればよいですか?

    4. 複数のフィールドでのNode.jsとMongooseの正規表現クエリ