我有一個java應用程序需要從MongoDB 3.2讀取大量數據並將其傳輸到Hadoop。讀取大型mongodb數據
此批處理應用程序每天運行6次,每4小時運行一次。
數據規格:
- 文件:80000在一個時間(每4小時)
- 尺寸:3GB
目前我使用MongoTemplate和嗎啡在爲了訪問MongoDB。 不過我用這個處理數據時得到一個OOM異常如下:
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
什麼是讀取該數據並填充到Hadoop的最好方法是什麼?
MongoTemplate::Stream()
並且一個一個地寫入Hadoop?batchSize(someLimit)
並將整批寫入Hadoop?Cursor.batch()
並寫入hdfs一個接一個?