Fondamentalement, ce dont vous avez besoin est de changer la "classe de format de sortie", et vous avez plusieurs façons :
- Utiliser le connecteur MongoDB pour Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implémentez votre propre OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Au lieu d'utiliser FileOutputFormat).
- Exécuter des requêtes mongodb dans le réducteur à la place d'écrire dans le contexte MapREduce (Pas sympa, vous pourriez vous retrouver avec des fichiers de sortie vides dans HDFS en fonction du OutputFormat spécifié dans le pilote)
À mon avis, l'option 1 est la meilleure option mais je n'ai pas utilisé le connecteur MongoDB pour dire s'il est suffisamment stable et fonctionnel. L'option 2 nécessite que vous compreniez vraiment comment fonctionne hadoop sous le capot pour éviter de se retrouver avec beaucoup de connexions ouvertes et des problèmes avec les transactions et les tentatives de tâches hadoop.