क्या MongoDB के लिए लिखे गए मैप-कम एल्गोरिदम को बाद में Hadoop में पोर्ट किया जा सकता है?


11

हमारी कंपनी में, हमारे पास एक MongoDB डेटाबेस है जिसमें बहुत से असंरचित डेटा हैं, जिस पर हमें रिपोर्ट और अन्य विश्लेषण उत्पन्न करने के लिए मैप-कम एल्गोरिदम को चलाने की आवश्यकता है। आवश्यक विश्लेषणों को लागू करने के लिए हमारे पास दो दृष्टिकोण हैं:

  1. एक दृष्टिकोण मानगोडीबी से एक हडोप क्लस्टर में डेटा निकालने और हैडोप प्लेटफॉर्म में पूरी तरह से विश्लेषण करने के लिए है। हालाँकि, इसके लिए प्लेटफ़ॉर्म (सॉफ्टवेयर और हार्डवेयर) तैयार करने और टीम को शिक्षित करने और हादोप के साथ काम करने और इसके लिए मानचित्र-कम करने के कार्यों को लिखने के लिए काफी निवेश की आवश्यकता होती है।

  2. एक और तरीका यह है कि हम मानचित्र-कम करने वाले एल्गोरिदम को डिजाइन करने पर अपना प्रयास करें, और MongoDB मैप-कम कार्यक्षमता पर एल्गोरिदम चलाएं। इस तरह, हम अंतिम प्रणाली का एक प्रारंभिक प्रोटोटाइप बना सकते हैं जो रिपोर्ट तैयार कर सकता है। मुझे पता है कि हनडॉप की तुलना में मोंगोबीडी के मानचित्र-कम कार्यात्मकता बहुत धीमी है, लेकिन वर्तमान में डेटा इतना बड़ा नहीं है जो इसे अभी भी अड़चन बनाता है, कम से कम अगले छह महीनों के लिए नहीं।

सवाल यह है कि दूसरे दृष्टिकोण का उपयोग करते हुए और MongoDB के लिए एल्गोरिदम लिखकर, क्या उन्हें बाद में थोड़ा आवश्यक संशोधन और एल्गोरिथ्म रिडिजाइन के साथ Hadoop में पोर्ट किया जा सकता है? MongoDB सिर्फ जावास्क्रिप्ट का समर्थन करता है लेकिन प्रोग्रामिंग भाषा अंतर को संभालना आसान है। हालाँकि, MongoDB और Hadoop के मानचित्र-कम मॉडल में कोई मूलभूत अंतर है जो हमें Hadoop को पोर्ट करने के लिए एल्गोरिदम को पर्याप्त रूप से पुनः डिज़ाइन करने के लिए बाध्य कर सकता है?


जवाबों:


4

अंत में एक अनुवाद कार्य निश्चित रूप से होगा यदि आप सिर्फ मोंगो का उपयोग करके प्रोटोटाइप बनाते हैं।

जब आप मोंगोडब पर एक MapReduce कार्य चलाते हैं, तो इसमें डेटा स्रोत और संरचना निर्मित होती है। जब आप अंततः हडूप में परिवर्तित होते हैं, तो आपकी डेटा संरचनाएं समान नहीं दिख सकती हैं। आप मोंगोडब-हडूप कनेक्टर का लाभ उठा सकते हैं, मोंगो डेटा को सीधे हडूप से एक्सेस करने के लिए, लेकिन यह उतना सीधा नहीं होगा जितना आप सोच सकते हैं। यह पता लगाने का समय कि वास्तव में रूपांतरण करने के लिए वास्तव में कैसे करना आसान है, एक बार जब आपके पास एक प्रोटोटाइप होगा, आईएमओ।

जबकि आपको मैप्रेड्यूस फ़ंक्शंस का अनुवाद करना होगा, बुनियादी छद्मकोड को दोनों प्रणालियों पर अच्छी तरह से लागू होना चाहिए। आपको कुछ भी ऐसा नहीं मिलेगा जो MongoDB में किया जा सकता है जो जावा का उपयोग करके नहीं किया जा सकता है या जो कि जावा के साथ करने के लिए काफी अधिक जटिल है।


5

आप जावा में प्रोग्रामिंग किए बिना Hadoop में मैप कम एल्गोरिदम का उपयोग कर सकते हैं। इसे स्ट्रीमिंग कहा जाता है और लिनक्स पाइपिंग की तरह काम करता है। यदि आप मानते हैं कि आप टर्मिनल को पढ़ने और लिखने के लिए अपने कार्यों को पोर्ट कर सकते हैं, तो इसे अच्छी तरह से काम करना चाहिए। यहाँ उदाहरण ब्लॉग पोस्ट है जो दिखाता है कि कैसे Hadoop में पायथन में लिखे गए नक्शे कम करने वाले कार्यों का उपयोग किया जाए।


1
अभी भी मानगो को प्रसंस्करण करना होगा, जो मुझे विश्वास है कि प्रश्न से अंतिम समाधान में बचा जाना है। ज्ञान का एक महत्वपूर्ण टुकड़ा लाने के लिए आपको एक उत्थान देना है।
स्टीव कालस्टैड

4

आप एक MongoDB-Hadoop कनेक्शन भी बना सकते हैं ।


आपकी पोस्ट के लिए धन्यवाद, लेकिन क्या आप यहां जुड़े समाधान का समग्र विवरण शामिल कर सकते हैं? लिंक में प्रश्न का उत्तर हो सकता है, लेकिन लिंक केवल उत्तर हतोत्साहित करता है।
रुबेंस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.