2011-09-29 14 views
43

MapReduce रोजगार के अवसर पैदा करने के लिए आप पुराने org.apache.hadoop.mapred पैकेज या मानचित्रकारों और कम करने, नौकरियाँ के लिए नए org.apache.hadoop.mapreduce पैकेज का उपयोग कर सकते ... पहले एक के रूप में पदावनत लेकिन इस बीच जो पूर्ववत हो गया चिह्नित किया गया था। अब मुझे आश्चर्य है कि नौकरी बनाने के लिए पुराने मानचित्रित पैकेज या नए मैड्रिड पैकेज का उपयोग करना बेहतर है या नहीं। या यह सिर्फ इस बात पर निर्भर है कि आपको मल्टीपलटेक्स्टऑटपुटफॉर्मैट जैसी चीजों की आवश्यकता है जो केवल पुराने मानचित्रित पैकेज में उपलब्ध है?बेहतर mapred या mapreduce पैकेज एक Hadoop नौकरी पैदा करने के लिए उपयोग करने के लिए है?

+0

'पर आधारित है लेकिन इस को वापस लाया गया गया meanwhile' आप सुनिश्चित हैं? –

+5

उदा। R0.21.0 में पैकेज org.apache.hadoop.mapred.lib में इंटरफ़ेस मैपर को बहिष्कृत के रूप में चिह्नित नहीं किया गया है, जबकि इसे r0.20.2 में बहिष्कृत के रूप में चिह्नित किया गया है। – momo13

उत्तर

39

कार्यक्षमता के अनुसार पुराने (o.a.h.mapred) और नए (o.a.h.mapreduce) एपीआई के बीच बहुत अंतर नहीं है। एकमात्र महत्वपूर्ण अंतर यह है कि रिकॉर्ड पुराने एपीआई में मैपर/रेड्यूसर पर धकेल दिए जाते हैं। जबकि नया एपीआई पुल/पुश तंत्र दोनों का समर्थन करता है। आप पुल तंत्र here के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

इसके अलावा, पुराने एपीआई 0.21 के बाद से un-deprecated किया गया है। आप नए एपीआई here के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

जैसा कि आपने बताया है कि कुछ वर्गों (जैसे एकाधिक टेक्स्टऑटपुटफॉर्मैट) को नए एपीआई में माइग्रेट नहीं किया गया है, इसके कारण और उपर्युक्त कारण पुराने एपीआई (हालांकि एक अनुवाद आमतौर पर काफी सरल होता है) से चिपकना बेहतर होता है।

+4

क्या कोई कारण है कि जावाडॉक्स इस में से किसी का उल्लेख नहीं करते हैं? – cmcginty

+3

[हडोप - परिभाषा गाइड] (http://shop.oreilly.com/product/0636920021773.do) में नए एपीआई में अधिकांश कोड है। –

+3

एक साइड नोट के रूप में - एमआरयूनीट नई एपीआई, मैप्रेडस का उपयोग करता है। तो यदि आप अपने कोड में .mapred का उपयोग कर रहे हैं, तो यह त्रुटियों को फेंकने वाला है। और आप खुश होने वाले नहीं हैं। – wmute

14

पुराने और नए दोनों एपीआई अच्छे हैं। हालांकि नया एपीआई क्लीनर है। नए API का उपयोग करें जहाँ भी आप कर सकते हैं, और पुराने एक का उपयोग भी आप विशिष्ट वर्गों कि

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

2

पुराने एपीआई (mapred)

  1. पैकेज में मौजूद org.apache.hadoop.mapred

  2. एक नक्शा प्रदान करें/काम विन्यास को कम।

  3. , किसी कुंजी के लिए मूल्यों को कम कर देता
  4. पैकेज इटरेटर के आधार पर Summary

नई एपीआई (mapreduce)

  1. पैकेज में मौजूद है org.apache.hadoop.mapreduce

  2. नौकरी कॉन्फ़िगरेशन अलग-अलग वर्ग द्वारा किया जाता है, जिसे जॉबकॉन्फ़ कहा जाता है जो exte है विन्यास
    कक्षा

  3. की nsion किसी कुंजी के लिए मान कम कर देता है, Iterable

  4. Package Summary

+0

org.apache.hadoop.mapred पुराना एपीआई है और org.apache.hadoop.mapreduce नया है। आप अपना उत्तर बदलना चाहेंगे – Harinder

+0

@ डेनिस ने – anish

+3

उत्तर अपडेट किया है, इसके अलावा, जॉबकॉन्फ़ मैपर्ड एपीआई का हिस्सा है, मैप्रिडस एपीआई नहीं – ryanbwork

संबंधित मुद्दे