मानचित्र साइड बनाम Vs. सम्मिलित हों



इस पोस्ट में Hadoop के नक्शे के साथ Vs. सम्मिलित हों। यह भी सीखें कि मैप हाइव क्या है, टेबल से जुड़ें, हाइव से जुड़ें, हाइव में मैप-साइड ज्वाइन ऑपरेशन का उपयोग करने के फायदे

इस ब्लॉग में, हम इस बारे में चर्चा करेंगे नक्शा पक्ष में शामिल हों और इसके सामान्य ऑपरेशन में शामिल होने के फायदे छत्तायह एक महत्वपूर्ण अवधारणा है जिसे आपको अपना कार्यान्वयन करने के लिए सीखने की आवश्यकता होगी लेकिन इस बारे में जानने से पहले, हमें पहले की अवधारणा को समझना चाहिए ‘शामिल हों ' और जब हम सम्मिलित होते हैं तो आंतरिक रूप से क्या होता है छत्ता

सम्मिलित हों एक खंड है जो दो तालिकाओं (या डेटा-सेट) के रिकॉर्ड को जोड़ता है।
मान लें कि हमारे पास दो टेबल ए और बी हैं। जब हम उन पर ऑपरेशन में शामिल होते हैं, तो यह उन रिकॉर्डों को वापस कर देगा जो सभी कॉलम ओ एफ ए और बी के संयोजन हैं।





अब हम एक उदाहरण के साथ सामान्य जुड़ाव की कार्यक्षमता को समझते हैं।

जब भी हम ऑपरेशन में शामिल होते हैं, तो जॉब को एक मैप रिड्यूस कार्य को सौंपा जाएगा जिसमें दो चरण होते हैं- a ‘नक्शा चरण 'और एक a चरण कम करें ।। मैप स्टेज के दौरान मैपर का काम करना है 'पढ़ें' शामिल होने के लिए तालिकाओं और से डेटा 'वापसी'‘ज्वाइन की ' तथा ‘ज्वाइन वैल्यू ' एक मध्यवर्ती फ़ाइल में जोड़ी। इसके अलावा, फेरबदल चरण में, इस मध्यवर्ती फ़ाइल को तब क्रमबद्ध और विलय किया जाता है। कम चरण के दौरान reducer का काम इस क्रमबद्ध परिणाम को इनपुट के रूप में लेना है और शामिल होने का कार्य पूरा करना है।



मर्ज सॉर्ट c ++ उदाहरण

  • मैप-साइड जॉइन एक जॉइन के समान है लेकिन सभी कार्य अकेले मैपर द्वारा किए जाएंगे।

  • कार्य को अनुकूलित करने के लिए मैप-साइड जॉइन छोटी तालिकाओं के लिए ज्यादातर उपयुक्त होगा।



मानचित्र-पक्ष कार्य को कैसे अनुकूलित करेगा?

मान लें कि हमारे पास दो तालिकाएँ हैं, जिनमें से एक छोटी तालिका है। जब हम एक नक्शा कम करने का कार्य प्रस्तुत करते हैं, तो मूल जॉइन मैप कम करें कार्य से पहले एक मैप रिड्यूस स्थानीय कार्य बनाया जाएगा जो एचडीएफएस से छोटी तालिका के डेटा को पढ़ेगा और इसे एक मेमोरी-हैश तालिका में संग्रहीत करेगा। पढ़ने के बाद, यह इन-मेमोरी हैश टेबल को हैश टेबल फाइल में क्रमबद्ध करता है।

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

मैप साइड में शामिल होने के लाभ:

  • मैप-साइड जॉइन उस लागत को कम करने में मदद करता है जो छंटाई और विलय के लिए होती है फेरबदल करना तथा कम करना चरणों।
  • मैप-साइड जॉइन कार्य को पूरा करने के लिए समय कम करके कार्य के प्रदर्शन को बेहतर बनाने में भी मदद करता है।

मानचित्र-पक्ष में शामिल होने के नुकसान:

  • मैप साइड जॉइन केवल तभी पर्याप्त होता है जब आप जिस टेबल-साइड जॉइन ऑपरेशन को करते हैं उसमें से एक मेमोरी में फिट होने के लिए काफी छोटा होता है। इसलिए यह उन दोनों में बड़े डेटा वाले टेबल पर मैप-साइड जॉइन करने के लिए उपयुक्त नहीं है।

मानचित्र में कमी के लिए सरल उदाहरण

आइए हम दो तालिकाएँ बनाएँ:

  • Emp : इसमें एक कर्मचारी का विवरण होता है जैसे कि कर्मचारी का नाम, कर्मचारी आईडी और वह विभाग जिसका वह है।

  • विभाग: इसमें विभाग का नाम, विभाग की आईडी आदि जैसे विवरण शामिल हैं।

निम्न इमेज में दिखाए गए अनुसार दो इनपुट फाइल बनाएं, जिससे डेटा को बनाए गए टेबल में लोड किया जा सके।

कर्मचारी

dept.txt

अब, हम डेटा को तालिकाओं में लोड करते हैं।

हम प्रदर्शन करते हैं नक्शा-पक्ष सम्मिलित हों जिन विभागों में प्रत्येक कर्मचारी काम कर रहा है, उनकी सूची निकालने के लिए दो तालिकाओं पर।

यहां ही दूसरी तालिका विभाग एक छोटी सी मेज है। याद रखें, हमेशा एक संगठन में कर्मचारियों की संख्या की तुलना में विभाग की संख्या कम होगी।

अब सामान्य रेड्यूस-साइड जॉइन की मदद से एक ही कार्य करते हैं।

दोनों जोड़ को निष्पादित करते समय, आप दो अंतर पा सकते हैं:

  • सामान्य जुड़ने में लगने वाले समय की तुलना में मानचित्र-कम जुड़ने ने कम समय में काम पूरा कर लिया है।

  • मैप-कम जॉइन ने किसी भी reducer की मदद के बिना अपना काम पूरा कर लिया है जबकि सामान्य जॉइन ने एक reducer की मदद से इस नौकरी को अंजाम दिया है।

इसलिये, मैप-साइड जॉइन करें आपका सबसे अच्छा दांव है जब एक मेज पर एक छोटी सी अवधि में काम पूरा करने के लिए स्मृति में फिट होने के लिए पर्याप्त है।

में वास्तविक समय का वातावरण , आपके पास भारी मात्रा में डेटा के साथ डेटा-सेट होंगे। इसलिए विश्लेषण करना और डेटा को पुनः प्राप्त करना समय लेने वाला होगा यदि डेटा-सेट में से एक छोटे आकार का हो। ऐसे मामलो मे मानचित्र-पक्ष में शामिल हों कम समय में काम पूरा करने में मदद करेगा।

Hadoop को मास्टर करने का इससे बेहतर समय कभी नहीं रहा! Edureka द्वारा विशेष रूप से क्यूरेट किए गए बिग डेटा और Hadoop कोर्स के साथ अब शुरुआत करें।

संदर्भ:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

संबंधित पोस्ट:

7 तरीके बड़े डेटा प्रशिक्षण आपके संगठन को बदल सकते हैं

कैसे int जावा में डबल कन्वर्ट करने के लिए