Mitt svar är baserat på kunskap och erfarenhet av Hadoop MR och lärande av Mongo DB MR. Låt oss se vad som är stora skillnader och sedan försöka definiera kriterier för urval:Skillnaderna är:
- Hadoops MR kan skrivas i Java, medan MongoDB:s är i JavaScript.
- Hadoops MR kan använda alla kärnor, medan MongoDB:s är enkelgängade.
- Hadoop MR kommer inte att samlokaliseras med data, medan Mongo DB kommer att samlokaliseras.
- Hadoop MR har miljontals motor/timmar och kan klara av många hörnfall med enorma utdatastorlekar, dataskevheter etc.
- Det finns ramverk på högre nivå som Pig, Hive, Cascading byggda ovanpå Hadoop MR-motorn.
- Hadoop MR är mainstream och mycket gemenskapsstöd finns tillgängligt.
Från ovanstående kan jag föreslå följande urvalskriterier:
Välj Mongo DB MR om du behöver enkel grupp efter och filtrering, förvänta dig inte tung blandning mellan kartan och reducera. Med andra ord – något enkelt.
Välj hadoop MR om du ska göra komplicerade, beräkningsintensiva MR-jobb (till exempel vissa regressionsberäkningar). Att ha mycket eller oförutsägbar datastorlek mellan kartor och reducering tyder också på Hadoop MR.
Java är ett starkare språk med fler bibliotek, särskilt statistiska. Det bör man ta hänsyn till.