Minha resposta é baseada no conhecimento e experiência do Hadoop MR e no aprendizado do Mongo DB MR. Vamos ver quais são as principais diferenças e, em seguida, tentar definir os critérios de seleção:As diferenças são:
- O MR do Hadoop pode ser escrito em Java, enquanto o do MongoDB está em JavaScript.
- O MR do Hadoop é capaz de utilizar todos os núcleos, enquanto o do MongoDB é de thread único.
- Hadoop MR não será colocado com os dados, enquanto o Mongo DB's será colocado.
- O Hadoop MR tem milhões de mecanismos/horas e pode lidar com muitos casos de canto com tamanho enorme de saída, distorções de dados etc.
- Existem estruturas de nível superior, como Pig, Hive, Cascading, construídas sobre o mecanismo Hadoop MR.
- O Hadoop MR é popular e há muito suporte da comunidade disponível.
Do acima, posso sugerir os seguintes critérios para seleção:
Selecione Mongo DB MR se você precisar de agrupamento e filtragem simples, não espere embaralhamento pesado entre mapa e redução. Em outras palavras - algo simples.
Selecione hadoop MR se for fazer trabalhos de MR complicados e computacionalmente intensos (por exemplo, alguns cálculos de regressões). Ter muito ou tamanho imprevisível de dados entre map e reduzir também sugere o Hadoop MR.
Java é uma linguagem mais forte com mais bibliotecas, especialmente estatísticas. Isso deve ser levado em consideração.