Basicamente o que você precisa é alterar a "classe de formato de saída", e você tem várias maneiras de lá:
- Use o Conector MongoDB para Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implemente seu próprio OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Em vez de usar FileOutputFormat).
- Execute consultas mongodb dentro do redutor em vez de escrever no contexto MapREduce (não é legal, você pode terminar com arquivos de saída vazios no HDFS dependendo do OutputFormat especificado no driver)
Na minha opinião, a opção 1 é a melhor opção, mas não usei o conector MongoDB para dizer se é suficientemente estável e funcional. A opção 2 exige que você realmente entenda como está funcionando o submundo do hadoop para evitar o término com muitas conexões abertas e problemas com transações e novas tentativas de tarefas do hadoop.