MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

wie man verarbeitete Daten von hdfs mit mapReduce in mongoDB als Ausgabe speichert

Grundsätzlich müssen Sie die "Ausgabeformatklasse" ändern, und Sie haben mehrere Möglichkeiten:

  1. Verwenden Sie MongoDB Connector für Hadoop :http://docs.mongodb.org/ecosystem/tools /hadoop/?_ga=1.111209414.370990604.1441913822
  2. Implementieren Sie Ihr eigenes Ausgabeformat :https://hadoop. apache.org/docs/r2.7.0/api/org/apache/hadoop/mapred/OutputFormat.html (Anstatt FileOutputFormat zu verwenden).
  3. Führen Sie mongodb-Abfragen innerhalb des Reducers aus stattdessen in den MapREduce-Kontext zu schreiben (Nicht schön, Sie könnten mit leeren Ausgabedateien in HDFS enden, abhängig vom im Treiber angegebenen Ausgabeformat)

Meiner Meinung nach ist Option 1 die beste Option, aber ich habe den MongoDB-Konnektor nicht verwendet, um zu sagen, ob er stabil und funktionsfähig genug ist. Option 2 erfordert, dass Sie wirklich verstehen, wie Hadoop im Hintergrund funktioniert, um ein Ende mit vielen offenen Verbindungen und Problemen mit Transaktionen und Wiederholungen von Hadoop-Aufgaben zu vermeiden.