Ich habe eine Java-Anwendung, die eine große Menge an Daten aus MongoDB 3.2 lesen und in Hadoop übertragen muss.Lesen Sie große mongodb Daten
Diese Batch-Anwendung wird alle 4 Stunden 6 Mal am Tag ausgeführt.
Daten Spezifikationen:
- Dokumente: 80000 zu einem Zeitpunkt (alle 4 Stunden)
- Größe:
Derzeit verwende ich MongoTemplate und Morphia in um auf MongoDB zuzugreifen. Jedoch habe ich eine OOM Ausnahme erhalten, wenn diese Datenverarbeitung die folgende Verwendung:
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
Was ist der beste Weg, um diese Daten zu lesen und zu Hadoop bevölkern?
MongoTemplate::Stream()
und schreiben Sie auf Hadoop eins nach dem anderen?batchSize(someLimit)
und schreiben Sie die gesamte Charge auf Hadoop?Cursor.batch()
und schreiben zu hdfs eins nach dem anderen?