Wat je eigenlijk nodig hebt is om de "output format class" te veranderen, en je hebt daar verschillende manieren voor:
- Gebruik MongoDB Connector voor Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implementeer uw eigen OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (In plaats daarvan FileOutputFormat te gebruiken).
- Voer mongodb-query's uit in de reducer in plaats daarvan om in de MapREduce-context te schrijven (niet leuk, je zou kunnen eindigen met lege uitvoerbestanden in HDFS, afhankelijk van de OutputFormat die is opgegeven in het stuurprogramma)
Naar mijn mening is optie 1 de beste optie, maar ik heb de MongoDB-connector niet gebruikt om te zeggen of deze voldoende stabiel en functioneel is. Optie 2 vereist dat je echt begrijpt hoe hadoop underhood werkt om te voorkomen dat je eindigt met veel open verbindingen en problemen met transacties en opnieuw proberen van hadoop-taken.