में मैपराइडस कार्यान्वयन मैं स्कैला से उपयोग करने के लिए अच्छा और मजबूत मैपरेडस ढांचा ढूंढना चाहता हूं।स्कैला
स्कैला
उत्तर
हडोप पर उत्तर में जोड़ने के लिए: कम से कम दो स्कैला रैपर हैं जो हडोप के साथ अधिक आकर्षक बनाते हैं।
स्काला मानचित्र में कमी (SMR): http://scala-blogs.org/2008/09/scalable-language-and-scalable.html
SHadoop: http://jonhnny-weslley.blogspot.com/2008/05/shadoop.html
युपीडी 5 अक्टू। 11
Scoobi फ्रेमवर्क भी है, जिसमें शानदार अभिव्यक्ति है।
http://hadoop.apache.org/ भाषा अज्ञेयवादी है।
मुझे खेद है, लेकिन मैंने जावा कार्यान्वयन के लिए नहीं पूछा था। दरअसल, हाडोप को स्कैला में प्लग किया जा सकता है लेकिन बॉयलरप्लेट कोड को जावा में लिखा जाना है। –
एक ScalaHadoopAdapter लिखें जो सभी बॉयलरप्लेट का ख्याल रखता है और इसे मुक्त/मुक्त स्रोत के रूप में प्रकाशित करता है? – yfeldblum
बॉयलरप्लेट को जावा में लिखा जाने की आवश्यकता नहीं है। – jshen
, CouchDB का उपयोग करने के लिए आपको स्कैला इंटरफ़ेस में रुचि हो सकती है।
एक और विचार GridGain का उपयोग करना है। ScalaDudes में स्काला के साथ ग्रिडगेन का उपयोग करने का एक उदाहरण है। और here एक और उदाहरण है।
कुछ समय पहले, मैं इस समस्या में भाग गया और स्कैला से हडोप का उपयोग करना आसान बनाने के लिए थोड़ा सा बुनियादी ढांचा लिखना समाप्त कर दिया। मैंने थोड़ी देर के लिए इसे अपने आप इस्तेमाल किया, लेकिन अंत में मैं इसे वेब पर डालने के लिए चारों ओर घूम गया। इसका नाम है (बहुत मूल रूप से) ScalaHadoop।
:
Hadoop स्ट्रीमिंग बस सॉकेट उपयोग करता है। यूनिक्स स्ट्रीम का उपयोग करके, आपका कोड (कोई भी भाषा) बस स्टडीन और आउटपुट टैब सीमांकित स्ट्रीम से पढ़ने में सक्षम होना चाहिए। एक मैपर लागू करें और यदि आवश्यक हो, तो एक reducer (और यदि प्रासंगिक है, तो combiner के रूप में कॉन्फ़िगर करें)।
हैडूप के शीर्ष पर एक स्कैला एपीआई के लिए Scoobi देखें, यह अभी भी भारी विकास में है लेकिन बहुत सारे वादे दिखाता है। Scala incubator में हडूप के शीर्ष पर वितरित संग्रह को लागू करने के कुछ प्रयास भी हैं, लेकिन यह प्रयास अभी तक उपयोग योग्य नहीं है।
ट्विटर से कैस्केडिंग के लिए एक नया स्कैला रैपर भी है, जिसे Scalding कहा जाता है। स्केलिंग के लिए प्रलेखन पर बहुत संक्षेप में देखने के बाद यह लगता है कि यह कैस्केडिंग चिकनी के साथ एकीकरण बनाता है, फिर भी यह को हल करता है जो मैं कैस्केडिंग के साथ मुख्य समस्या के रूप में नहीं देखता हूं: सुरक्षा टाइप करें। कैस्केडिंग में प्रत्येक ऑपरेशन कैस्केडिंग के टुपल्स (मूल रूप से फ़ील्ड मानों की सूची अलग-अलग स्कीमा के साथ या बिना) पर संचालित होता है, जिसका अर्थ है कि टाइप त्रुटियां, आईई। एक लंबे समय के रूप में एक स्ट्रिंग और कुंजी के रूप में कुंजी में शामिल होने से रन-टाइम विफलताओं के लिए की ओर जाता है।
स्केलिंग में एक प्रकार-सुरक्षित API है: https://github.com/twitter/scalding/wiki/Type-safe-api-reference और फ़ील्ड एपीआई में (जो आप उल्लेख कर रहे हैं), लंबे समय तक एक स्ट्रिंग में शामिल होने से रन-टाइम अपवाद नहीं होते हैं (यदि वे दोनों संख्याएं हैं)। बेशक, प्रकार-सुरक्षित एपीआई में इस तरह के एक संयोजन को संकलक द्वारा प्रतिबंधित किया जाता है। –
व्यक्तिगत रूप से, मैं स्पार्क के एक बड़े प्रशंसक बन गए
आप में स्मृति क्लस्टर कंप्यूटिंग करने के लिए काफी भूमि के ऊपर आप डिस्क गहन mapreduce संचालन से अनुभव होगा कम करने की क्षमता है।
शैडोप काफी पुराना है - यह पुराने एमआर ढांचे का उपयोग करता है। मैंने कुछ बिंदुओं पर implicits अद्यतन किया: https://github.com/schmmd/Hadoop-Scala-Commons – schmmd
स्केलिंग भी एक विकल्प है। https://github.com/twitter/scalding –