MongoDB 3.2에서 많은 양의 데이터를 읽고이를 Hadoop으로 전송해야하는 Java 애플리케이션이 있습니다.큰 mongodb 데이터 읽기
이 배치 응용 프로그램은 하루에 6 번 4 시간마다 실행됩니다.
데이터 사양 :
- 서류 : 한 번에 80,000 (4 시간마다)
- 크기 : 3GB 것은 내가 MongoTemplate 및 을 현재
사용하고 모르핀에서 MongoDB에 액세스하십시오. 사용하여이 데이터를 처리 할 때 내가 OOM 예외를 얻을 그러나 다음
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
이 데이터를 읽고 하둡에 채울 수있는 가장 좋은 방법은 무엇입니까?
MongoTemplate::Stream()
하나씩 작성 하시겠습니까?batchSize(someLimit)
전체 배치를 Hadoop에 쓰시겠습니까?Cursor.batch()
그리고 하나씩 hdfs에 쓰기?