Fondamentalmente ciò di cui hai bisogno è cambiare la "classe del formato di output" e hai diversi modi per farlo:
- Usa Connettore MongoDB per Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implementa il tuo OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Invece di utilizzare FileOutputFormat).
- Esegui query mongodb all'interno del riduttore invece di scrivere nel contesto MapREduce (non piacevole, potresti finire con file di output vuoti in HDFS a seconda dell'OutputFormat specificato nel driver)
Secondo me l'opzione 1 è l'opzione migliore ma non ho usato il connettore MongoDB per dire se è abbastanza stabile e funzionale. L'opzione 2 richiede che tu comprenda davvero come funziona l'underhood di hadoop per evitare di finire con molte connessioni aperte e problemi con transazioni e tentativi di attività hadoop.