इस MapReduce सट्टा निष्पादन लेख में, आप Hadoop सट्टा निष्पादन के बारे में विस्तार से जानेंगे। आप सीखेंगे कि सट्टा निष्पादन क्या है, इसकी क्या आवश्यकता है, हम इसे कैसे सक्षम और अक्षम कर सकते हैं।
लेख यह भी बताता है कि यह फायदेमंद है या नहीं और यह कैसे काम करता है।
Hadoop में सट्टा निष्पादन क्या है?
Hadoop ढांचे में MapReduce मॉडल नौकरियों को स्वतंत्र कार्यों में विभाजित करता है और समग्र कार्य निष्पादन समय को कम करने के लिए इन कार्यों को समानांतर में चलाता है।
यह धीमी गति से चलने वाले कार्यों के लिए कार्य निष्पादन को समय-संवेदी बनाता है क्योंकि केवल एक धीमा कार्य पूरे कार्य निष्पादन समय को अपेक्षा से अधिक लंबा बना सकता है। जब किसी भी नौकरी में हजारों या सैकड़ों कार्य होते हैं तो कुछ संघर्षपूर्ण कार्यों की संभावना बहुत वास्तविक होती है।
विभिन्न कारणों से कार्य धीमा हो सकता है, जैसे सॉफ़्टवेयर गलत कॉन्फ़िगरेशन या हार्डवेयर गिरावट। लेकिन कार्य को धीमा करने वाले कारणों का पता लगाना कठिन है क्योंकि कार्य अभी भी सफलतापूर्वक पूर्ण होते हैं, हालांकि इसमें अपेक्षा से अधिक समय लगता है।
Hadoop ढांचा धीमी गति से चलने वाले कार्यों का निदान या उन्हें ठीक करने का प्रयास नहीं करता है। फ्रेमवर्क उस कार्य का पता लगाने की कोशिश करता है जो अपेक्षित गति से धीमी गति से चल रहा है और दूसरा कार्य शुरू करता है, जो बैकअप के समान कार्य है।
बैकअप कार्य को सट्टा कार्य के रूप में जाना जाता है, और इस प्रक्रिया को Hadoop में सट्टा निष्पादन के रूप में जाना जाता है।
Hadoop में सट्टा निष्पादन की क्या आवश्यकता है?
Hadoop ढांचे में, इनपुट फ़ाइल को कई ब्लॉकों में विभाजित किया जाता है, और उन ब्लॉकों को Hadoop क्लस्टर में विभिन्न नोड्स पर संग्रहीत किया जाता है।
जब MapReduce जॉब क्लाइंट द्वारा सबमिट की जाती है तो यह InputSplits की संख्या की गणना करता है और InputSplit की संख्या के रूप में कई मैपर चलाता है। ये मैपर (मानचित्र कार्य) DataNodes पर समानांतर में चलते हैं, जहां विभाजित डेटा रहता है।
अब, क्या होगा यदि Hadoop क्लस्टर में कुछ DataNodes हार्डवेयर विफलता या नेटवर्क समस्याओं के कारण अन्य DataNodes के रूप में कार्यों को तेजी से निष्पादित नहीं कर रहे हैं।
तो उन डेटा नोड्स पर चल रहे मानचित्र कार्य अन्य डेटा नोड्स पर चल रहे मानचित्र कार्यों की तुलना में धीमे होंगे। रेड्यूसर अपना निष्पादन तभी शुरू कर सकता है जब सभी मैपर के इंटरमीडिएट आउटपुट उपलब्ध हों।
इस प्रकार कम धीमी गति से चलने वाले मानचित्र कार्य रेड्यूसर के निष्पादन में देरी करेंगे।
यदि रेड्यूसर धीमे नोड पर चल रहा है, तो इससे समग्र कार्य के अंतिम आउटपुट में भी देरी होगी।
तो ऐसे धीमी गति से चलने वाले कार्यों से बचाव के लिए, Hadoop ढांचा दूसरे नोड पर समान कार्य शुरू करता है। Hadoop ढांचे द्वारा इस अनुकूलन को कार्य का सट्टा निष्पादन कहा जाता है।
सट्टा निष्पादन Hadoop में कैसे काम करता है?
सट्टा निष्पादन नौकरी के प्रत्येक स्वतंत्र कार्य के दो डुप्लिकेट कार्यों को एक ही समय में लॉन्च नहीं करता है ताकि वे एक-दूसरे की दौड़ लगा सकें। यदि ढांचा ऐसा करता है, तो इससे क्लस्टर संसाधनों की बर्बादी होगी।
इसके बजाय, शेड्यूलर एक ही प्रकार के सभी कार्यों की प्रगति को ट्रैक करता है (जैसे नक्शा और कम करना) नौकरी में, और केवल छोटे अनुपात के लिए सट्टा डुप्लीकेट लॉन्च करता है जो औसत से धीमी गति से चल रहे थे।
जब कार्य सफलतापूर्वक पूरा हो जाता है, तो चल रहे किसी भी डुप्लिकेट कार्य को मार दिया जाता है क्योंकि अब उनकी आवश्यकता नहीं थी।
इसलिए, यदि मूल कार्य सट्टा कार्य से पहले पूरा हो जाता है, तो सट्टा कार्य समाप्त हो जाता है। यदि सट्टा कार्य मूल कार्य से पहले समाप्त हो जाता है, तो मूल कार्य समाप्त हो जाता है।
ध्यान दें कि सट्टा निष्पादन एक अनुकूलन है। MapReduce नौकरियों को अधिक मज़बूती से चलाने के लिए यह एक विशेषता नहीं है।
Hadoop में सट्टा निष्पादन को कैसे कॉन्फ़िगर करें?
डिफ़ॉल्ट रूप से, मानचित्र कार्य के साथ-साथ कम करने वाले कार्यों के लिए सट्टा निष्पादन सक्षम है। इसके गुण mapred-site.xml . में सेट हैं कॉन्फ़िगरेशन फ़ाइल।
- mapreduce.map.speculative :यदि यह गुण सत्य पर सेट है, तो मानचित्र कार्य का सट्टा निष्पादन सक्षम है। डिफ़ॉल्ट रूप से, यह सच है।
- mapreduce.reduce.speculative :यदि यह गुण सत्य पर सेट है, तो कम कार्य का सट्टा निष्पादन सक्षम है। डिफ़ॉल्ट रूप से, यह सच है।
आप कभी भी सट्टा निष्पादन को बंद क्यों करना चाहेंगे?
सट्टा निष्पादन का मुख्य लक्ष्य कार्य निष्पादन समय को कम करना है। लेकिन यह Hadoop क्लस्टर दक्षता की कीमत पर आएगा।
एक व्यस्त Hadoop क्लस्टर पर, यह समग्र थ्रूपुट को कम कर सकता है क्योंकि एकल कार्य के निष्पादन समय को कम करने के लिए निरर्थक कार्यों को निष्पादित किया जा रहा है।
इस कारण से, कुछ क्लस्टर व्यवस्थापक Hadoop क्लस्टर पर सट्टा निष्पादन को बंद कर देते हैं और उपयोगकर्ताओं को अलग-अलग कार्यों के लिए इसे स्पष्ट रूप से चालू कर देते हैं।
हम कार्यों को कम करने के लिए इसे बंद कर सकते हैं क्योंकि किसी भी डुप्लिकेट कम करने वाले कार्यों को मूल कार्य के समान मैपर आउटपुट लाने की आवश्यकता होती है, जो क्लस्टर पर नेटवर्क ट्रैफ़िक में उल्लेखनीय वृद्धि करेगा।
क्या सट्टा निष्पादन फायदेमंद है?
Hadoop में सट्टा निष्पादन कुछ मामलों में फायदेमंद होता है क्योंकि Hadoop क्लस्टर में सैकड़ों या हजारों नोड होते हैं, नेटवर्क की भीड़ या हार्डवेयर विफलता जैसी समस्याएं आम हैं।
इसलिए समानांतर या डुप्लीकेट कार्यों को चलाना बेहतर होगा। लेकिन यदि किसी कार्य के प्रत्येक स्वतंत्र कार्य के दो डुप्लीकेट कार्यों को लगभग एक ही समय में लॉन्च किया जाता है, तो यह क्लस्टर संसाधनों का अपव्यय होगा।
सारांश
मुझे उम्मीद है कि इस लेख को पढ़ने के बाद आप स्पष्ट रूप से समझ गए होंगे कि Hadoop में सट्टा निष्पादन क्या है और इसकी आवश्यकता क्यों है। आपने यह भी देखा है कि कैसे हम इसे मानचित्र कार्यों के लिए अक्षम कर सकते हैं और व्यक्तिगत रूप से कार्यों को कम कर सकते हैं।