Vad du behöver är att ändra "utgångsformatklassen", och du har flera sätt där:
- Använd MongoDB Connector för Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implementera ditt eget OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Istället för att använda FileOutputFormat).
- Kör mongodb-förfrågningar inuti reduceraren istället för att skriva i MapREduce-kontexten (Inte trevligt, du kan sluta med tomma utdatafiler i HDFS beroende på det OutputFormat som anges i drivrutinen)
Enligt min mening är alternativ 1 det bästa alternativet men jag har inte använt MongoDB-kontakt för att säga om den är tillräckligt stabil och funktionell. Alternativ 2 kräver att du verkligen förstår hur det fungerar med hadoop underhood för att undvika slut med många öppna anslutningar och problem med transaktioner och återförsök med hadoop-uppgifter.