Mi respuesta se basa en el conocimiento y la experiencia de Hadoop MR y el aprendizaje de Mongo DB MR. Veamos cuáles son las principales diferencias y luego intentemos definir los criterios de selección:Las diferencias son:
- El MR de Hadoop se puede escribir en Java, mientras que el de MongoDB está en JavaScript.
- El MR de Hadoop es capaz de utilizar todos los núcleos, mientras que el de MongoDB es de un solo subproceso.
- Hadoop MR no se ubicará junto con los datos, mientras que Mongo DB sí lo hará.
- Hadoop MR tiene millones de horas/motor y puede hacer frente a muchos casos de esquina con un tamaño masivo de salida, datos sesgados, etc.
- Hay estructuras de nivel superior como Pig, Hive, Cascading construidas sobre el motor Hadoop MR.
- Hadoop MR es estándar y cuenta con mucho apoyo de la comunidad.
A partir de lo anterior, puedo sugerir los siguientes criterios de selección:
Seleccione Mongo DB MR si necesita agrupar y filtrar de manera simple, no espere cambios pesados entre mapear y reducir. En otras palabras, algo simple.
Seleccione hadoop MR si va a realizar trabajos de MR complicados y computacionalmente intensos (por ejemplo, algunos cálculos de regresión). Tener una gran cantidad de datos o un tamaño impredecible entre mapear y reducir también sugiere Hadoop MR.
Java es un lenguaje más fuerte con más bibliotecas, especialmente estadísticas. Eso debe tenerse en cuenta.