Tôi có một ứng dụng java cần đọc một lượng lớn dữ liệu từ MongoDB 3.2 và chuyển nó sang Hadoop.Đọc dữ liệu mongodb lớn
Ứng dụng hàng loạt này chạy mỗi 4 giờ 6 lần một ngày.
Thông số kỹ thuật dữ liệu:
- Tài liệu: 80000 tại một thời điểm (mỗi 4 giờ)
- Kích thước: 3GB
Hiện nay tôi đang sử dụng MongoTemplate và nha phiến trong để truy cập MongoDB. Tuy nhiên tôi nhận được một ngoại lệ oom khi xử lý dữ liệu này bằng cách sử dụng sau đây:
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
cách tốt nhất để đọc dữ liệu này và cư để Hadoop là gì?
MongoTemplate::Stream()
và viết thư cho Hadoop từng cái một?batchSize(someLimit)
và viết toàn bộ hàng loạt cho Hadoop?Cursor.batch()
và viết thành từng tệp một?