मैं अद्वितीय उपयोगकर्ताओं की गिनती के लिए स्पार्क स्ट्रीमिंग का उपयोग कर रहा हूं। मैं updateStateByKey
का उपयोग करता हूं, इसलिए मुझे एक चेकपॉइंट निर्देशिका कॉन्फ़िगर करने की आवश्यकता है। मैं भी डेटा चौकी से, जबकि आवेदन शुरू, the example in the doc के रूप में लोड:स्पार्क स्ट्रीमिंग एप्लिकेशन को फिर से तैनात करने के लिए चेकपॉइंट को कॉन्फ़िगर कैसे करें?
// Function to create and setup a new StreamingContext
def functionToCreateContext(): StreamingContext = {
val ssc = new StreamingContext(...) // new context
val lines = ssc.socketTextStream(...) // create DStreams
...
ssc.checkpoint(checkpointDirectory) // set checkpoint directory
ssc
}
// Get StreamingContext from checkpoint data or create a new one
val context = StreamingContext.getOrCreate(checkpointDirectory, functionToCreateContext _)
यहाँ सवाल है, अगर मेरे कोड बदल दिया गया है, तो मैं फिर से तैनात कोड, चौकी लोड किया जाएगा कोई कितना भी है कोड बदल गया है? या मुझे अपने डेटा को दृढ़ता से रखने और अगले भाग में लोड करने के लिए अपने तर्क का उपयोग करने की आवश्यकता है।
यदि मैं डीस्ट्रीम को सहेजने और लोड करने के लिए अपने तर्क का उपयोग करता हूं, तो यदि अनुप्रयोग विफलता पर पुनरारंभ होता है, तो क्या डेटा चेकपॉइंट निर्देशिका और मेरे डेटाबेस से लोड नहीं होगा?