मेरे पास एक जावा एप्लिकेशन है जिसे मोंगोडीबी 3.2 से बड़ी मात्रा में डेटा पढ़ने और इसे हडोप में स्थानांतरित करने की आवश्यकता है।बड़े mongodb डेटा पढ़ें
यह बैच एप्लिकेशन दिन में हर 4 घंटे 6 बार चलाया जाता है।
डाटा विनिर्देश:
- दस्तावेज: 80000 एक समय में (हर 4 घंटे)
- आकार: 3gb
वर्तमान में मैं MongoTemplate और उपयोग कर रहा हूँ अफ़ीम का सत्त्व में MongoDB तक पहुंचने के लिए आदेश। का उपयोग करते समय इस डेटा का संसाधन हालांकि मैं एक OOM अपवाद निम्नलिखित:
List<MYClass> datalist = datasource.getCollection("mycollection").find().asList();
इस डेटा को पढ़ने और Hadoop को पॉप्युलेट करने के लिए सबसे अच्छा तरीका क्या है?
MongoTemplate::Stream()
और हडोप को एक-एक करके लिखें?batchSize(someLimit)
और पूरे बैच को हडोप में लिखें?Cursor.batch()
और एचडीएफएस को एक-एक करके लिखें?