2015-09-15 22 views
24

मेरे पास स्पार्क स्ट्रीमिंग नौकरी है जो लगातार चल रही है। मैं नौकरी को शानदार तरीके से कैसे रोकूं? मैंने नौकरी की निगरानी में शटडाउन हुक को जोड़ने और नौकरी के लिए एक सिगरेट भेजने की सामान्य सिफारिशें पढ़ी हैं।मैं स्पार्क स्ट्रीमिंग नौकरी कैसे रोकूं?

sys.ShutdownHookThread { 
    logger.info("Gracefully stopping Application...") 
    ssc.stop(stopSparkContext = true, stopGracefully = true) 
    logger.info("Application stopped gracefully") 
} 

ऐसा लगता है लेकिन नौकरी को रोकने के लिए सबसे साफ तरीका नहीं दिखता है। क्या मुझसे कोई चूक हो रही है?

एक कोड परिप्रेक्ष्य से यह समझ में आता है लेकिन आप क्लस्टर पर्यावरण में इसका उपयोग कैसे करते हैं? यदि हम स्पार्क स्ट्रीमिंग जॉब शुरू करते हैं (हम क्लस्टर में सभी नोड्स पर नौकरियों को वितरित करते हैं) तो हमें नौकरी और नोड के लिए पीआईडी ​​का ट्रैक रखना होगा जिस पर यह चल रहा था। आखिरकार जब हमें प्रक्रिया को रोकना पड़ता है, तो हमें उस ट्रैक को ट्रैक करने की आवश्यकता होती है जिस पर नौकरी चल रही थी और इसके लिए पीआईडी। मैं बस उम्मीद कर रहा था कि नौकरी स्ट्रीमिंग के लिए नौकरी नियंत्रण का एक आसान तरीका होगा।

+0

आपको क्या साफ नहीं दिख रहा है? मुझे लगता है कि यह सही है। –

+0

मैंने प्रश्न में कुछ और विवरण जोड़े हैं। – Saket

उत्तर

18

आप SIGTERM भेजने की आवश्यकता के बिना निम्न आदेश चलाकर क्लस्टर मोड में अपने स्ट्रीमिंग संदर्भ को रोक सकते हैं। यह थ्रेड हुक का उपयोग करके स्पष्ट रूप से इसे रोकने की आवश्यकता के बिना स्ट्रीमिंग संदर्भ को रोक देगा। -

$SPARK_HOME_DIR/bin/spark-submit --master $MASTER_REST_URL --kill $DRIVER_ID

$ MASTER_REST_URL चिंगारी ड्राइवर के बाकी यूआरएल, चिंगारी की तरह यानी कुछ है: // स्थानीय होस्ट: 6066

- $ DRIVER_ID है की तरह कुछ चालक-20150915145601-0000

यदि आप स्पार्क को अपने ऐप को गर्व से रोकना चाहते हैं, तो जब आप स्पार्क एप शुरू में शुरू होते हैं तो आप निम्न सिस्टम प्रॉपर्टी को सेट करने का प्रयास कर सकते हैं (स्पार्क कॉन्फ़िगरेशन गुणों को सेट करने पर http://spark.apache.org/docs/latest/submitting-applications.html देखें)।

spark.streaming.stopGracefullyOnShutdown=true

यह आधिकारिक तौर पर दर्ज नहीं किया गया है, और मैं 1.4 स्रोत कोड देख से एकत्र हुए। यह झंडा स्टैंडअलोन मोड में सम्मानित है। मैंने अभी तक क्लस्टर मोड में इसका परीक्षण नहीं किया है।

मैं चिंगारी 1.4 के साथ काम कर रहा हूँ। *

+0

हाय, ud3sh, यार्न क्लस्टर मॉडल और 1.3 संस्करण में, मैं कैसे कर सकता हूं? – zwb

+3

'spark.streaming.stopGracefullyOnShutdown' अब आधिकारिक तौर पर स्पार्क कॉन्फ़िगरेशन पृष्ठ में प्रलेखित है http://spark.apache.org/docs/latest/configuration.html#spark- स्ट्रीमिंग – avr

+0

क्या होगा यदि आपने प्रति संदर्भ कई नौकरियों को तुरंत चालू किया है और रोकना चाहते हैं व्यक्तिगत रूप से नौकरियां? –

-1

यह आधिकारिक अब, कृपया मूल अपाचे प्रलेखन पर गौर यहाँ http://spark.apache.org/docs/latest/configuration.html#spark-streaming

+4

कृपया उत्तर से संबंधित लिंक से विशिष्ट सामग्री साझा करें। केवल एक लिंक पोस्ट करने से ओपी की समस्या हल नहीं होती है। –

0

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

यूआई में एक अनुभाग है, जो चल रहे स्ट्रीमिंग अनुप्रयोगों को दिखाता है, और प्रत्येक एप्लिकेशन आईडी के पास छोटे (kill) यूआरएल बटन हैं।

+0

कहां? मैं केवल प्रत्येक * चरण * (एक रिसीवर पर) के बगल में थोड़ा '(मारना) बटन देखता हूं, लेकिन अगर मैं उनमें से किसी को मार डालता हूं तो दूसरा जल्दी से पैदा होता है –

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