Mam aplikację java, która musi odczytać dużą ilość danych z MongoDB 3.2 i przenieść ją do Hadoop.Czytaj duże dane mongody
Ta aplikacja wsadowa jest uruchamiana co 4 godziny 6 razy dziennie.
Specyfikacje danych:
- Dokumenty: 80000 naraz (co 4 godziny)
- Rozmiar: 3GB
Obecnie używam MongoTemplate i Morphia w aby uzyskać dostęp do MongoDB. jednak otrzymuję wyjątek OOM podczas przetwarzania tych danych za pomocą następujących czynności:
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
Jaki jest najlepszy sposób, aby odczytać te dane i wypełnić do Hadoop?
MongoTemplate::Stream()
i pisać do Hadoop jeden po drugim?batchSize(someLimit)
i napisać całą partię do Hadoop?Cursor.batch()
i pisać do hdfs jeden po drugim?