Moja odpowiedź opiera się na wiedzy i doświadczeniu Hadoop MR oraz nauce Mongo DB MR. Zobaczmy, jakie są główne różnice, a następnie spróbujmy zdefiniować kryteria wyboru:Różnice to:
- MR Hadoopa można napisać w Javie, podczas gdy MongoDB jest w JavaScript.
- MR Hadoopa jest w stanie wykorzystać wszystkie rdzenie, podczas gdy MongoDB jest jednowątkowy.
- Hadoop MR nie będzie kolokowany z danymi, podczas gdy bazy danych Mongo DB będą kolokowane.
- Hadoop MR ma miliony silników na godziny i radzi sobie z wieloma przypadkami narożnymi z ogromnymi rozmiarami danych wyjściowych, skrzywieniem danych itp.
- Istnieją struktury wyższego poziomu, takie jak Pig, Hive, Cascading zbudowane na silniku Hadoop MR.
- Hadoop MR jest głównym nurtem i dostępne jest duże wsparcie społeczności.
Z powyższego mogę zasugerować następujące kryteria wyboru:
Wybierz Mongo DB MR, jeśli potrzebujesz prostego grupowania według i filtrowania, nie oczekuj dużego przetasowania między mapą a redukcją. Innymi słowy - coś prostego.
Wybierz hadoop MR, jeśli zamierzasz wykonywać skomplikowane, wymagające obliczeniowo zadania MR (na przykład niektóre obliczenia regresji). Duża lub nieprzewidywalna wielkość danych między mapą a redukcją sugeruje również Hadoop MR.
Java jest silniejszym językiem z większą liczbą bibliotek, zwłaszcza statystycznych. Należy to wziąć pod uwagę.