Dybest set, hvad du har brug for er at ændre "outputformatklassen", og du har flere måder der:
- Brug MongoDB Connector til Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
- Implementer dit eget OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (I stedet for at bruge FileOutputFormat).
- Udfør mongodb-forespørgsler inde i reduceringen i stedet for at skrive i MapREduce-konteksten (Ikke rart, du kan ende med tomme udgangsfiler i HDFS afhængigt af det outputformat, der er angivet i driveren)
Efter min mening er mulighed 1 den bedste mulighed, men jeg har ikke brugt MongoDB-stik til at sige, om det er nok stabilt og funktionelt. Mulighed 2 kræver, at du virkelig forstår, hvordan fungerer hadoop underhood for at undgå at ende med en masse åbne forbindelser og problemer med transaktioner og genforsøg på hadoop-opgaver.