அப்பாச்சி தீப்பொறி ஸ்ட்ரீமிங்கில் ஒட்டுமொத்த மாநில மாற்றம்



இந்த வலைப்பதிவு இடுகை ஸ்பார்க் ஸ்ட்ரீமிங்கில் மாநில மாற்றங்களைப் பற்றி விவாதிக்கிறது. ஒரு ஹடூப் ஸ்பார்க் வாழ்க்கைக்கான ஒட்டுமொத்த கண்காணிப்பு மற்றும் திறனைப் பற்றி அனைத்தையும் அறிக.

பிருத்விராஜ் போஸ் வழங்கினார்

எனது முந்தைய வலைப்பதிவில் அப்பாச்சி ஸ்பார்க் ஸ்ட்ரீமிங்கின் சாளரக் கருத்தைப் பயன்படுத்தி மாநில மாற்றங்கள் குறித்து விவாதித்தேன். நீங்கள் அதைப் படிக்கலாம் இங்கே .





இந்த இடுகையில் நான் அப்பாச்சி ஸ்பார்க் ஸ்ட்ரீமிங்கில் ஒட்டுமொத்த மாநில செயல்பாடுகள் பற்றி விவாதிக்க உள்ளேன். நீங்கள் ஸ்பார்க் ஸ்ட்ரீமிங்கிற்கு புதியவர் என்றால், சாளரங்கள் எவ்வாறு செயல்படுகின்றன என்பதைப் புரிந்துகொள்வதற்காக எனது முந்தைய வலைப்பதிவைப் படிக்க நான் கடுமையாக பரிந்துரைக்கிறேன்.

தீப்பொறி ஸ்ட்ரீமிங்கில் மாநில மாற்றத்தின் வகைகள் (தொடர்ந்து…)

> ஒட்டுமொத்த கண்காணிப்பு

நாங்கள் பயன்படுத்தினோம் குறைக்கும் பைகேஆண்ட்விண்டோ (…) விசைகளின் நிலைகளைக் கண்காணிப்பதற்கான ஏபிஐ, இருப்பினும் சாளரம் சில பயன்பாட்டு நிகழ்வுகளுக்கு வரம்புகளை ஏற்படுத்துகிறது. விசைகளின் நிலைகளை ஒரு நேர சாளரத்தில் மட்டுப்படுத்துவதை விட அதை குவித்து வைக்க விரும்பினால் என்ன செய்வது? அந்த வழக்கில் நாம் பயன்படுத்த வேண்டும் updateStateByKey (…) தீ.



இந்த ஏபிஐ ஸ்பார்க் 1.3.0 இல் அறிமுகப்படுத்தப்பட்டது மற்றும் மிகவும் பிரபலமாக உள்ளது. இருப்பினும் இந்த ஏபிஐ சில செயல்திறன் மேல்நிலைகளைக் கொண்டுள்ளது, காலப்போக்கில் மாநிலங்களின் அளவு அதிகரிக்கும்போது அதன் செயல்திறன் குறைகிறது. இந்த API இன் பயன்பாட்டைக் காட்ட நான் ஒரு மாதிரி எழுதியுள்ளேன். நீங்கள் குறியீட்டைக் காணலாம் இங்கே .

ஸ்பார்க் 1.6.0 புதிய API ஐ அறிமுகப்படுத்தியது mapWithState (…) இது முன்வைக்கும் செயல்திறன் மேல்நிலைகளை தீர்க்கிறது updateStateByKey (…) . இந்த வலைப்பதிவில் நான் எழுதிய மாதிரி நிரலைப் பயன்படுத்தி இந்த குறிப்பிட்ட ஏபிஐ பற்றி விவாதிக்க உள்ளேன். நீங்கள் குறியீட்டைக் காணலாம் இங்கே .

நான் ஒரு குறியீட்டு நடைக்குள் நுழைவதற்கு முன்பு, சோதனைச் சாவடியில் சில சொற்களை விட்டுவிடுவோம். எந்தவொரு மாநில மாற்றத்திற்கும், சோதனைச் சாவடி கட்டாயமாகும். சோதனைச் சாவடி என்பது இயக்கி நிரல் தோல்வியுற்றால் விசைகளின் நிலையை மீட்டெடுப்பதற்கான ஒரு பொறிமுறையாகும். இயக்கி மறுதொடக்கம் செய்யும்போது, ​​சோதனைச் சாவடி கோப்புகளிலிருந்து விசைகளின் நிலை மீட்டமைக்கப்படுகிறது. சோதனைச் சாவடி இருப்பிடங்கள் பொதுவாக HDFS அல்லது அமேசான் S3 அல்லது நம்பகமான சேமிப்பிடம். குறியீட்டைச் சோதிக்கும் போது, ​​ஒருவர் உள்ளூர் கோப்பு முறைமையிலும் சேமிக்க முடியும்.



மாதிரி நிரலில், ஹோஸ்ட் = லோக்கல் ஹோஸ்ட் மற்றும் போர்ட் = 9999 இல் சாக்கெட் உரை ஸ்ட்ரீமைக் கேட்கிறோம். இது உள்வரும் ஸ்ட்ரீமை (சொற்கள், நிகழ்வுகள் இல்லை) டோக்கன் செய்கிறது மற்றும் 1.6.0 API ஐப் பயன்படுத்தி சொல் எண்ணிக்கையைக் கண்காணிக்கிறது. mapWithState (…) . கூடுதலாக, புதுப்பிப்புகள் இல்லாத விசைகள் பயன்படுத்தி அகற்றப்படும் ஸ்டேட்ஸ்பெக் டைம்அவுட் API. நாங்கள் எச்.டி.எஃப்.எஸ் இல் சோதனைச் சாவடி செய்கிறோம், சோதனைச் சாவடி அதிர்வெண் ஒவ்வொரு 20 வினாடிக்கும் ஆகும்.

முதலில் ஒரு தீப்பொறி ஸ்ட்ரீமிங் அமர்வை உருவாக்குவோம்,

Spark-streaming-session

நாங்கள் ஒரு உருவாக்குகிறோம் checkpointDir HDFS இல் பின்னர் பொருள் முறையை அழைக்கவும் getOrCreate (…) . தி getOrCreate ஏபிஐ சரிபார்க்கிறது checkpointDir மீட்டமைக்க முந்தைய மாநிலங்கள் ஏதேனும் இருக்கிறதா என்று பார்க்க, அது இருந்தால், அது தீப்பொறி ஸ்ட்ரீமிங் அமர்வை மீண்டும் உருவாக்குகிறது மற்றும் புதிய தரவுகளுடன் நகரும் முன் கோப்புகளில் சேமிக்கப்பட்ட தரவுகளிலிருந்து விசைகளின் நிலைகளைப் புதுப்பிக்கிறது. இல்லையெனில் இது ஒரு புதிய தீப்பொறி ஸ்ட்ரீமிங் அமர்வை உருவாக்குகிறது.

தி getOrCreate சோதனைச் சாவடி அடைவு பெயர் மற்றும் ஒரு செயல்பாட்டை (நாங்கள் பெயரிட்டுள்ளோம் createFunc ) யாருடைய கையொப்பம் இருக்க வேண்டும் () => ஸ்ட்ரீமிங் கான்டெக்ஸ்ட் .

உள்ளே உள்ள குறியீட்டை ஆராய்வோம் createFunc .

வரி # 2: வேலை பெயருடன் “டெஸ்ட்மேப்வித்ஸ்டேட்ஜோப்” மற்றும் தொகுதி இடைவெளி = 5 விநாடிகளுக்கு ஸ்ட்ரீமிங் சூழலை உருவாக்குகிறோம்.

வரி # 5: சோதனைச் சாவடி கோப்பகத்தை அமைக்கவும்.

வரி # 8: வகுப்பைப் பயன்படுத்தி மாநில விவரக்குறிப்பை அமைக்கவும் org.apache.streaming.StateSpec பொருள். நாங்கள் முதலில் மாநிலத்தைக் கண்காணிக்கும் செயல்பாட்டை அமைத்துள்ளோம், பின்னர் வரும் மாற்றங்களின் போது உருவாக்கப்பட வேண்டிய டி.எஸ்.டிரீம்களுக்கான பகிர்வுகளின் எண்ணிக்கையை அமைப்போம். இறுதியாக நாங்கள் காலக்கெடுவை (30 வினாடிகளுக்கு) அமைத்துள்ளோம், அங்கு ஒரு விசைக்கான புதுப்பிப்பு 30 வினாடிகளில் பெறப்படாவிட்டால், முக்கிய நிலை அகற்றப்படும்.

உபுண்டுக்கு சிறந்த ஜாவா ஐடியா

வரி 12 #: சாக்கெட் ஸ்ட்ரீமை அமைக்கவும், உள்வரும் தொகுதி தரவைத் தட்டவும், ஒரு முக்கிய மதிப்பு ஜோடியை உருவாக்கவும், அழைக்கவும் mapWithState , சோதனைச் சாவடி இடைவெளியை 20 களாக அமைத்து, முடிவுகளை அச்சிடுங்கள்.

தீப்பொறி கட்டமைப்பை அழைக்கிறது e createFunc முந்தைய மதிப்பு மற்றும் தற்போதைய நிலை கொண்ட ஒவ்வொரு விசைக்கும். நாங்கள் தொகையை கணக்கிட்டு, மாநிலத்தை ஒட்டுமொத்த தொகையுடன் புதுப்பித்து, இறுதியாக விசைக்கான தொகையை திருப்பித் தருகிறோம்.

கிதுப் ஆதாரங்கள் -> TestMapStateWithKey.scala , TestUpdateStateByKey.scala

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், நாங்கள் உங்களைத் தொடர்புகொள்வோம்.

தொடர்புடைய இடுகைகள்:

அப்பாச்சி ஸ்பார்க் & ஸ்கலாவுடன் தொடங்கவும்

தீப்பொறி ஸ்ட்ரீமிங்கில் சாளரத்துடன் மாநில மாற்றங்கள்