स्टॉर्म और हडोप (MapReduce) के बीच व्यापार


12

डेटा प्रसंस्करण के लिए Hadoop क्लस्टर में तूफान और MapReduce के बीच चयन करते समय क्या कोई कृपया मुझे उस ट्रेड-ऑफ के बारे में बता सकता है? जाहिर है, एक तरफ से, कि Hadoop (एक Hadoop क्लस्टर में MapReduce के माध्यम से प्रसंस्करण) एक बैच प्रसंस्करण प्रणाली है, और तूफान एक वास्तविक समय प्रसंस्करण प्रणाली है।

मैंने Hadoop Eco System के साथ थोड़ा काम किया है, लेकिन मैंने स्टॉर्म के साथ काम नहीं किया है। बहुत सारी प्रस्तुतियों और लेखों को देखने के बाद, मैं अभी भी एक संतोषजनक और व्यापक उत्तर नहीं पा सका हूँ।

नोट: यहां ट्रेडऑफ़ शब्द समान चीजों की तुलना करने के लिए नहीं है। यह वास्तविक समय प्राप्त करने के परिणामों का प्रतिनिधित्व करने के लिए है जो एक बैच प्रसंस्करण प्रणाली से अनुपस्थित हैं।

जवाबों:


13

MapReduce : एक सहिष्णु सहिष्णु ने कम्प्यूटेशनल ढांचे को वितरित किया। MapReduce आपको भारी मात्रा में डेटा को संचालित करने की अनुमति देता है- हार्डवेयर के कारण विफलता को रोकने के लिए बहुत सारे काम के साथ। MapReduce फ्लाई पर कंप्यूटिंग परिणामों के लिए एक खराब विकल्प है क्योंकि यह धीमा है। (एक विशिष्ट MapReduce कार्य मिनट या घंटों के क्रम पर होता है, न कि माइक्रोसेकंड)

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

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

तूफान : एक वास्तविक समय, स्ट्रीमिंग कम्प्यूटेशनल प्रणाली। तूफान ऑनलाइन फ्रेमवर्क है, अर्थ, इस अर्थ में, एक सेवा जो एक चल रहे एप्लिकेशन के साथ बातचीत करती है। MapReduce के विपरीत, यह आपके एप्लिकेशन में संसाधित किए गए डेटा के छोटे टुकड़े (पूरी फ़ाइल नहीं) प्राप्त करता है। आप डेटा पर कार्य करने के लिए ऑपरेशनों के DAG को परिभाषित करते हैं। स्टॉर्म के लिए एक सामान्य और सरल उपयोग मामला काउंटरों पर नज़र रख रहा है, और वास्तविक समय के डैशबोर्ड को आबाद करने के लिए उस जानकारी का उपयोग कर रहा है।

अपने डेटा को बनाए रखने के साथ करने के लिए तूफान के पास कुछ भी (आवश्यक) नहीं है। यहाँ, स्ट्रीमिंग आपके द्वारा परवाह की गई जानकारी को रखने और बाकी को फेंकने के लिए कहने का एक और तरीका है। वास्तव में, आपके पास संभवतः आपके आवेदन में एक दृढ़ता परत है जो पहले से ही डेटा दर्ज कर चुका है, और इसलिए यह चिंताओं का एक अच्छा और न्यायसंगत पृथक्करण है।

यदि आप अधिक जानना चाहते हैं ... यदि आप रीयल-टाइम सिस्टम के बारे में अधिक जानना चाहते हैं जो एमआर के साथ मापदंडों को फिट करते हैं और मॉडल को एक अलग तरीके से लागू करते हैं तो यहां एक बात के लिए स्लाइड हैं जो मैंने वास्तविक समय की सिफारिश के इंजन के निर्माण पर दिया था HBase।

एक उत्कृष्ट पत्र जो वास्तविक समय की गिनती और एक दिलचस्प तरीके से दृढ़ता से शादी करता है, वह है Google समाचार वैयक्तिकरण: स्केलेबल ऑनलाइन Collative फ़िल्टरिंग

एमआर और स्टॉर्म की एक और दिलचस्प शादी है सुमिंगबर्ड । Summingbird आपको डेटा विश्लेषण संचालन को परिभाषित करने की अनुमति देता है जिसे स्टॉर्म या एमआर के माध्यम से लागू किया जा सकता है।


9

यह फ्राइंग पैन और चांदी के बर्तन के आपके दराज के बीच ट्रेडऑफ के बारे में पूछने जैसा है। वे दो चीजें नहीं हैं जिनकी आप तुलना करते हैं, वास्तव में। आप एक बड़ी परियोजना के हिस्से के रूप में उन्हें एक साथ उपयोग कर सकते हैं।

Hadoop अपने आप में एक चीज नहीं है, बल्कि HDFS, Hive, HBase, MapReduce, इत्यादि जैसी सेवाओं के एक फेडरेशन के लिए एक नाम है। तूफान कुछ ऐसी सेवाओं के साथ आप उपयोग करते हैं, जैसे HDFS या HBase। यह एक स्ट्रीम-प्रोसेसिंग फ्रेमवर्क है। विस्तारित Hadoop पारिस्थितिकी तंत्र के भीतर अन्य हैं, जैसे स्पार्क स्ट्रीमिंग।

आप एक स्ट्रीम-प्रोसेसिंग फ्रेमवर्क कब चुनेंगे? जब आपको निकट-वास्तविक समय में नए डेटा पर प्रतिक्रिया करने की आवश्यकता होती है। यदि आपको इस तरह के टूल की आवश्यकता है, तो आप इस तरह के टूल को भी तैनात करते हैं।


मैंने Hadoop इको सिस्टम में MapReduce के माध्यम से प्रसंस्करण को केवल Hadoop के रूप में संदर्भित किया है क्योंकि यह आमतौर पर इस्तेमाल किया जाने वाला शब्द है (हालांकि तकनीकी रूप से गलत है और मैंने तदनुसार प्रश्न को बदल दिया है)।
mbbce

हो सकता है कि मैं गलत हूं, लेकिन मुझे लगता है कि सिर्फ वास्तविक समय के प्रसंस्करण के अलावा और भी बहुत कुछ है। यदि उनके बीच कोई व्यापार नहीं था, तो हर कोई निकट-वास्तविक समय में चीजें करना पसंद करेगा। एक संकर दृष्टिकोण दोनों दुनिया के सर्वश्रेष्ठ (कुछ हद तक) प्राप्त करने की अनुमति देता है। इसीलिए सुमिंगबर्ड को बनाया गया।
mbbce

1
एक बड़ा अंतर यह है कि एक स्ट्रीम प्रोसेसिंग सिस्टम केवल एक बार डेटा को छू सकता है, और स्वयं के पास कोई दीर्घकालिक स्थिति नहीं है। कुछ समस्याओं को इस तरह से हल नहीं किया जा सकता है। जिन समस्याओं के लिए यह ठीक है, यह एक ऐसी प्रणाली का उपयोग करने के लिए तेज़ है जिसे पहले (फिर से पढ़ने योग्य) संग्रहण में स्थायी डेटा की आवश्यकता नहीं है। MapReduce स्टॉर्म की तुलना में स्वाभाविक रूप से धीमा नहीं है; दोनों कंटेनर हैं। वे विभिन्न समस्याओं के लिए अलग-अलग प्रतिमान हैं।
सीन ओवेन

लंबे समय तक लगातार स्थिति नहीं होने का मतलब यह है कि इस तरह के निकट-वास्तविक समय सिस्टम लंबी अवधि में इनपुट अपडेट जमा नहीं कर सकते हैं? क्या आप मुझे ऐसे किसी संसाधन का उल्लेख कर सकते हैं जो इस पर आगे चर्चा करता है
23

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