Ma réponse est basée sur la connaissance et l'expérience de Hadoop MR et sur l'apprentissage de Mongo DB MR. Voyons quelles sont les principales différences, puis essayons de définir des critères de sélection :les différences sont :
- Le MR de Hadoop peut être écrit en Java, tandis que celui de MongoDB est en JavaScript.
- Le MR de Hadoop est capable d'utiliser tous les cœurs, tandis que celui de MongoDB est à thread unique.
- Hadoop MR ne sera pas colocalisé avec les données, tandis que Mongo DB sera colocalisé.
- Hadoop MR a des millions d'heures moteur et peut faire face à de nombreux cas particuliers avec une taille de sortie massive, des biais de données, etc.
- Il existe des frameworks de niveau supérieur tels que Pig, Hive, Cascading construits sur le moteur Hadoop MR.
- Hadoop MR est grand public et de nombreux supports communautaires sont disponibles.
À partir de ce qui précède, je peux suggérer les critères de sélection suivants :
Sélectionnez Mongo DB MR si vous avez besoin d'un regroupement et d'un filtrage simples, ne vous attendez pas à un mélange important entre la carte et la réduction. En d'autres termes - quelque chose de simple.
Sélectionnez hadoop MR si vous allez effectuer des tâches MR compliquées et intenses en termes de calcul (par exemple, certains calculs de régressions). Avoir beaucoup ou une taille de données imprévisible entre la carte et la réduction suggère également Hadoop MR.
Java est un langage plus fort avec plus de bibliothèques, notamment statistiques. Cela devrait être pris en compte.