2014-10-28 9 views
5

मैं समझता हूं कि कार्यकर्ता नोड्स कैसे गलती सहनशील होते हैं, लेकिन क्या होता है यदि आपका ड्राइवर प्रोग्राम कुछ अप्रत्याशित कारणों से क्रैश हो जाता है? (पावर डाउन/मेमोरी इश्यू आदि)।क्या होता है यदि ड्राइवर प्रोग्राम क्रैश हो जाता है?

मुझे लगता है कि आप सभी काम खो देंगे, क्योंकि परिणाम पढ़ने वाले कोड अब और नहीं चल रहे हैं, या स्पार्क किसी भी तरह से इसे पुनरारंभ करने के बारे में जानता है? यदि हां, तो कैसे?

+3

इस पर निर्भर करता है कि आप अपने ड्राइवर को कैसे चलाते हैं। उदाहरण के लिए, यदि आप यार्न-क्लस्टर मोड में चलते हैं, तो यार्न आपके ड्राइवर को पुनः प्रयास करेगा। हालांकि, इसका मतलब है कि आप अपनी सभी नौकरियों को दोबारा शुरू करें। – zsxwing

+0

धन्यवाद। तो मुझे इसे डिजाइन करने की ज़रूरत है ताकि चालक कहीं भी उप-गणनाओं की प्रगति को बचा सके, और कुछ लॉग में गणना के "चरण" को अद्यतन करता है, और आंतरिक रूप से मुझे लगता है कि –

+0

सही है। आपको ड्राइवर द्वारा खुद को पुनर्प्राप्त करने की आवश्यकता है। – zsxwing

उत्तर

4

जैसा कि @zsxwing बताता है कि यह आपके ड्राइवर को कैसे चलाता है इस पर निर्भर करता है। यार्न में चलने के अलावा, आप क्लस्टर के तैनाती मोड के साथ अपना काम भी चला सकते हैं (यह स्पार्क-सबमिट करने के लिए एक पैरामीटर है)। स्पार्क स्ट्रीमिंग में आप निर्दिष्ट करते हैं - पर्यवेक्षण और स्पार्क आपके लिए नौकरी को पुनरारंभ करेगा। विवरण Spark Streaming Guide में हैं।

+0

- पर्यवेक्षण का उपयोग करते समय चेकपॉइंट आवश्यक है? – okwap

2

हाँ आप स्पार्क अनुप्रयोगों को पुनरारंभ कर सकते हैं। कुछ विकल्प उपलब्ध हैं जो क्लस्टर प्रबंधक के लिए विशिष्ट हैं जिनका उपयोग किया जा रहा है। उदाहरण के लिए, क्लस्टर परिनियोजन मोड के साथ स्पार्क स्टैंडअलोन क्लस्टर के साथ, आप - को भी यह सुनिश्चित करने के लिए निर्दिष्ट कर सकते हैं कि ड्राइवर गैर-शून्य निकास कोड में विफल होने पर स्वचालित रूप से पुनरारंभ होता है। ऐसे सभी चिंगारी से सबमिट करने के लिए उपलब्ध विकल्पों की गणना करने के लिए, --help साथ इसे चलाने:

साथ क्लस्टर तैनाती मोड में एक स्पार्क स्टैंडअलोन क्लस्टर पर चलाने की निगरानी

./bin/spark-submit \ 
    --class org.apache.spark.examples.SparkPi \ 
    --master spark://207.184.161.138:7077 \ 
    --deploy-mode cluster \ 
    --supervise \ 
    /path/to/examples.jar \ 
    1000 
0

प्रति स्पार्क प्रलेखन के रूप में पर यह जांच कर सकते हैं: -

स्पार्क स्टैंडअलोन - स्पार्क स्टैंडअलोन क्लस्टर (क्लस्टर तैनाती मोड देखें) के भीतर चलाने के लिए एक स्पार्क एप्लिकेशन ड्राइवर सबमिट किया जा सकता है, यानी, एप्लिकेशन ड्राइवर स्वयं वर्कर नोड्स में से एक पर चलता है। इसके अलावा, स्टैंडअलोन क्लस्टर मैनेजर को ड्राइवर की निगरानी करने के लिए निर्देश दिया जा सकता है, और यदि ड्राइवर गैर-शून्य निकास कोड के कारण या ड्राइवर चलाने वाले नोड की विफलता के कारण विफल रहता है तो इसे फिर से लॉन्च कर सकता है। क्लस्टर मोड देखें और अधिक जानकारी के लिए स्पार्क स्टैंडअलोन गाइड में पर्यवेक्षण करें।

तो --supervise केवल स्टैंडअलोन क्लस्टर मोड के साथ, आपके आवेदन यार्न क्लस्टर मोड में प्रस्तुत किया जाता है तो यार्न के चालक को पुनः आरंभ संभाल लेंगे mapred साइट में mapreduce.am.max-प्रयास संपत्ति में विन्यस्त रूप में काम करेंगे .xml, तो आपका कोड ऐसा होना चाहिए कि यह आउटपुट निर्देशिका को हटा देता है और स्क्रैच से शुरू होता है अन्यथा आउटपुट निर्देशिका की त्रुटि के साथ विफल हो जाएगा।

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