sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man lagrar bearbetad data från hdfs med mapReduce i mongoDB som utdata

Vad du behöver är att ändra "utgångsformatklassen", och du har flera sätt där:

  1. Använd MongoDB Connector för Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
  2. Implementera ditt eget OutputFormat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Istället för att använda FileOutputFormat).
  3. Kör mongodb-förfrågningar inuti reduceraren istället för att skriva i MapREduce-kontexten (Inte trevligt, du kan sluta med tomma utdatafiler i HDFS beroende på det OutputFormat som anges i drivrutinen)

Enligt min mening är alternativ 1 det bästa alternativet men jag har inte använt MongoDB-kontakt för att säga om den är tillräckligt stabil och funktionell. Alternativ 2 kräver att du verkligen förstår hur det fungerar med hadoop underhood för att undvika slut med många öppna anslutningar och problem med transaktioner och återförsök med hadoop-uppgifter.




  1. ställa in utgångsdatum för Hashmap-värden i Redis?

  2. Node JS Redis Client Connection Försök igen

  3. MongoDB textsökning och beställ efter

  4. Hur kan jag spara flera dokument samtidigt i Mongoose/Node.js?