निम्नलिखित के लिए मान लें कि केवल एक स्पार्क नौकरी हर बिंदु पर चल रही है।
मुझे अब तक क्या मिला है
यहाँ मैं समझता हूँ कि स्पार्क में क्या होता है:
- जब एक
SparkContext
बनाया जाता है, तो प्रत्येक कार्यकर्ता नोड एक निष्पादक शुरू करता है। निष्पादक अलग-अलग प्रक्रियाएं (JVM) हैं, जो ड्राइवर प्रोग्राम में वापस कनेक्ट होती हैं। प्रत्येक निष्पादक के पास ड्राइवर प्रोग्राम का जार है। एक ड्राइवर छोड़ने, निष्पादकों को बंद कर देता है। प्रत्येक निष्पादक कुछ विभाजन पकड़ सकता है। - जब एक नौकरी निष्पादित होती है, तो वंशावली ग्राफ के अनुसार एक निष्पादन योजना बनाई जाती है।
- निष्पादन कार्य को चरणों में विभाजित किया जाता है, जहां कई पड़ोसी (वंश ग्राफ में) परिवर्तन और कार्रवाई वाले चरण होते हैं, लेकिन कोई फेरबदल नहीं होता है। इस प्रकार चरणों को फेरबदल द्वारा अलग किया जाता है।
मैं समझता हूँ कि
- एक कार्य एक कमांड है जो ड्राइवर से फंक्शन ऑब्जेक्ट को क्रमांकित करके एक निष्पादक को भेजा जाता है।
- निष्पादक कमांडर (कार्य) के साथ डिसेरिअलाइज़ करता है और इसे एक पार्टीशन पर निष्पादित करता है।
परंतु
प्रशन)
मैं उन कार्यों में चरण कैसे विभाजित करूं?
विशेष रूप से:
- क्या परिवर्तन और कार्यों द्वारा निर्धारित कार्य हैं या एक कार्य में कई परिवर्तन / कार्य हो सकते हैं?
- विभाजन द्वारा निर्धारित कार्य हैं (उदाहरण के लिए प्रति विभाजन प्रति चरण एक कार्य)।
- क्या कार्य नोड द्वारा निर्धारित होते हैं (उदाहरण के लिए प्रति नोड प्रति चरण एक कार्य)?
मुझे क्या लगता है (केवल आंशिक उत्तर, भले ही सही)
Https : //0x0fff.com/spark-altecture-shuffle में , फेरबदल को छवि के साथ समझाया गया है
और मुझे यह आभास होता है कि नियम है
प्रत्येक चरण को नोड्स की संख्या के संबंध में # संख्या-विभाजन कार्यों में विभाजित किया गया है
अपनी पहली छवि के लिए मैं कहूंगा कि मेरे पास 3 मानचित्र कार्य होंगे और 3 कार्य कम करेंगे।
0x0fff से छवि के लिए, मैं कहूंगा कि 8 मानचित्र कार्य हैं और 3 कार्य कम करते हैं (यह मानते हुए कि केवल तीन नारंगी और तीन गहरे हरे रंग की फाइलें हैं)।
किसी भी मामले में प्रश्न खोलें
क्या वो सही है? लेकिन अगर यह सही है, तो भी, ऊपर दिए गए मेरे प्रश्नों का उत्तर नहीं दिया गया है, क्योंकि यह अभी भी खुला है, चाहे कई ऑपरेशन (जैसे कई नक्शे) एक कार्य के भीतर हों या प्रति ऑपरेशन एक कार्य में अलग हो गए हों।
दूसरे क्या कहते हैं
स्पार्क में एक कार्य क्या है? स्पार्क कार्यकर्ता जार फ़ाइल को कैसे निष्पादित करता है? और Apache स्पार्क शेड्यूलर फ़ाइलों को कार्यों में कैसे विभाजित करता है? समान हैं, लेकिन मुझे ऐसा नहीं लगा कि मेरे प्रश्न का उत्तर वहां स्पष्ट रूप से दिया गया था।