sql >> Database >  >> NoSQL >> MongoDB

hoe verwerkte gegevens van hdfs op te slaan met behulp van mapReduce in mongoDB als uitvoer

Wat je eigenlijk nodig hebt is om de "output format class" te veranderen, en je hebt daar verschillende manieren voor:

  1. Gebruik MongoDB Connector voor Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
  2. Implementeer uw eigen OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (In plaats daarvan FileOutputFormat te gebruiken).
  3. Voer mongodb-query's uit in de reducer in plaats daarvan om in de MapREduce-context te schrijven (niet leuk, je zou kunnen eindigen met lege uitvoerbestanden in HDFS, afhankelijk van de OutputFormat die is opgegeven in het stuurprogramma)

Naar mijn mening is optie 1 de beste optie, maar ik heb de MongoDB-connector niet gebruikt om te zeggen of deze voldoende stabiel en functioneel is. Optie 2 vereist dat je echt begrijpt hoe hadoop underhood werkt om te voorkomen dat je eindigt met veel open verbindingen en problemen met transacties en opnieuw proberen van hadoop-taken.




  1. MongoDB $geoNear-aggregatiepijplijn (met behulp van de query-optie en met behulp van $match-pijplijnbewerking) met verschillende resultaten

  2. PHP MongoDB werkt meerdere documenten bij met $in/$or

  3. MongoDB:aggregatieraamwerk:$match tussen velden

  4. Mongoose vult sub-subdocument in