Apache Spark vs Hadoop के लिए उपयोग के मामले क्या हैं


30

Hadoop 2.0 और YARN Hadoop के साथ माना जाता है कि अब केवल मैप-कम समाधानों से बंधा हुआ नहीं है। उस प्रगति के साथ, अपाचे स्पार्क बनाम हडोप के लिए एचडीएस के ऊपर बैठने पर विचार करने के लिए उपयोग के मामले क्या हैं? मैंने स्पार्क के लिए परिचय प्रलेखन के माध्यम से पढ़ा है, लेकिन मैं उत्सुक हूं अगर किसी को भी ऐसी समस्या का सामना करना पड़ा है जो हडोप की तुलना में स्पार्क के साथ हल करने के लिए अधिक कुशल और आसान था।

जवाबों:


40

Hadoop का अर्थ है HDFS, YARN, MapReduce, और बहुत सारी अन्य चीजें। क्या आपका मतलब स्पार्क बनाम मेप्रेड्यूस है ? चूँकि स्पार्क हडूप पर / साथ चलता है, जो कि बिंदु है।

स्पार्क का उपयोग करने का प्राथमिक कारण गति के लिए है, और यह इस तथ्य से आता है कि इसका निष्पादन मैप्स या रिड्यूस के बाद हमेशा एचडीएफएस पर वापस रहने के बजाय चरणों के बीच स्मृति में डेटा रख सकता है। यह लाभ पुनरावृत्ति संगणनाओं के लिए बहुत स्पष्ट है, जिनमें दसियों चरण हैं जिनमें से प्रत्येक समान डेटा को छू रहा है। यह वह जगह है जहां चीजें "100x" तेजी से हो सकती हैं। सरल, एक पास ईटीएल जैसी नौकरियों के लिए जिसके लिए MapReduce डिज़ाइन किया गया था, यह सामान्य रूप से तेज़ नहीं है।

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

अंत में स्पार्क के पास एमएल, ग्राफ विश्लेषण और स्ट्रीमिंग के लिए अभी तक युवा लेकिन आशाजनक उपप्रोजेक्ट हैं, जो एक समान, सुसंगत एपीआई को उजागर करते हैं। MapReduce के साथ, आपको इसके लिए कई अन्य प्रोजेक्ट्स (Mahout, Giraph, Storm) की ओर रुख करना होगा। यह एक पैकेज में होना अच्छा है, भले ही अभी तक 'बेक्ड' न हो।

आप स्पार्क का उपयोग क्यों नहीं करेंगे? अपने आप को परास्त करना:

  • स्पार्क मुख्य रूप से स्काला है, पोर्टेड जावा एपीआई के साथ; MapReduce जावा आधारित डेवलपर्स के लिए मित्रतापूर्ण और अधिक मूल हो सकता है
  • वहाँ स्पार्क की तुलना में अब अधिक MapReduce विशेषज्ञता है
  • डेटा-पैरेलल, वन-पास, ईटीएल जैसी नौकरियों के लिए, मैपआरड्यूस के लिए डिज़ाइन किया गया था, मैपआरड्यूस स्पार्क समकक्ष की तुलना में हल्का है।
  • स्पार्क काफी परिपक्व है, और इसलिए अब YARN है, लेकिन स्पार्क-ऑन-YARN अभी भी बहुत नया है। हो सकता है कि दोनों अभी तक एकीकृत रूप से एकीकृत न हों। उदाहरण के लिए जब तक हाल ही में मुझे नहीं लगता कि स्पार्क यारों की संख्या के आधार पर आवंटन के लिए पूछ सकता है? वह यह है: MapReduce को समझना, प्रबंधित करना और ट्यून करना आसान हो सकता है

स्पष्टीकरण के लिए धन्यवाद। डेटा को स्मृति ध्वनियों में रखते हुए ऐसा लगता है कि इसमें कुछ दिलचस्प निहितार्थ हैं - मैं स्पार्क के लचीले वितरित डेटासेट अवधारणा पर थोड़ा और पढ़ूंगा।
इदक्कल

3
बहुत सारे लोगों के लिए वास्तव में स्पष्ट और उपयोगी उत्तर के लिए, जिनके पास यह सवाल था, मेरी तरह।
vefthym

3
ध्यान रखें कि शॉन ओवेन स्पार्क पर नई ओ'रेली पुस्तक के सह-लेखक हैं। :-)
शेल्डोन्क्रेगर

1

YARN के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि स्पार्क हडॉप (100 गुना तेजी से विज्ञापित) की तुलना में वास्तविक अंतर बनाता है यदि डेटा कम्प्यूटेशनल नोड्स की स्मृति में अच्छी तरह से फिट हो सकता है। केवल इसलिए कि यह हार्ड डिस्क एक्सेस से बचता है। यदि डेटा मेमोरी में फिट नहीं होता है तो बफरिंग की वजह से कुछ लाभ होता है।


0

अच्छी जानकारी @ सीन ओवेन। एक अतिरिक्त जोड़ना चाहेंगे। स्पार्क लैम्ब्डा आर्किटेक्चर में यूनिफाइड डेटा पाइपलाइनों को बनाने में मदद कर सकता है, दोनों बैच और स्ट्रीमिंग लेयर्स को आम सर्विंग लेयर को लिखने की क्षमता के साथ संबोधित करते हैं। बैच और स्ट्रीमिंग के बीच तर्क का पुन: उपयोग करना बहुत बड़ा लाभ है। स्पार्क 1 में भी के-मीन्स एल्गोरिदम को स्ट्रीम करना 1.4 में उत्कृष्ट नौकरी की निगरानी और प्रक्रिया विज़ुअलाइज़ेशन के अलावा एमएल से जोड़ा गया प्लस है।


0

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

  • ग्राहक विश्लेषण चलाएं, उदाहरण के लिए ग्राहक के व्यवहार की तुलना किसी विशेष ग्राहक खंड के व्यवहार पैटर्न से करें और कुछ क्रियाओं को ट्रिगर करें;
  • जोखिम का प्रबंधन और विभिन्न संभावित परिदृश्यों का पूर्वानुमान;
  • वास्तविक समय में धोखाधड़ी का पता लगाएं;
  • औद्योगिक बड़े डेटा विश्लेषण चलाएं और विसंगतियों और मशीन विफलताओं की भविष्यवाणी करें।

हालाँकि, MapReduce वास्तव में विशाल डेटासेट प्रसंस्करण में अच्छा है (यदि आप प्रसंस्करण के लिए आवश्यक समय के साथ ठीक हैं)। इसके अलावा, यह एक अधिक किफायती समाधान है, क्योंकि MapReduce एक डिस्क से पढ़ता / लिखता है। और डिस्क आम तौर पर स्मृति से सस्ती होती हैं।


-1

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


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