స్పార్క్ స్ట్రీమింగ్‌లో విండోతో స్టేట్‌ఫుల్ ట్రాన్స్ఫర్మేషన్స్



ఈ బ్లాగ్ పోస్ట్ స్పార్క్ స్ట్రీమింగ్‌లో విండోసింగ్‌తో రాష్ట్ర పరివర్తనలను చర్చిస్తుంది. స్టేట్-ఫుల్ డి-స్ట్రీమ్‌లను ఉపయోగించి బ్యాచ్‌లలో డేటాను ట్రాక్ చేయడం గురించి తెలుసుకోండి.

పృథ్వీరాజ్ బోస్ సహకారం అందించారు

ఈ బ్లాగులో మేము అపాచీ స్పార్క్ యొక్క స్థితిగతుల పరివర్తన యొక్క విండోస్ భావన గురించి చర్చిస్తాము.





రాష్ట్ర పరివర్తన అంటే ఏమిటి?

స్పార్క్ స్ట్రీమింగ్ మైక్రో బ్యాచ్ ఆర్కిటెక్చర్‌ను ఉపయోగిస్తుంది, ఇక్కడ ఇన్‌కమింగ్ డేటాను మైక్రో బ్యాచ్‌లుగా డిస్క్రిటైజ్డ్ స్ట్రీమ్స్ (డిఎస్‌ట్రీమ్స్) అని పిలుస్తారు, ఇది ప్రాథమిక ప్రోగ్రామింగ్ నైరూప్యంగా కూడా ఉపయోగపడుతుంది. DStreams అంతర్గతంగా స్థితిస్థాపక పంపిణీ డేటాసెట్లను (RDD) కలిగి ఉంటాయి మరియు ఈ ప్రామాణిక RDD పరివర్తనాలు మరియు చర్యలు ఫలితంగా చేయవచ్చు.



స్ట్రీమింగ్‌లో బ్యాచ్‌లలో డేటాను ట్రాక్ చేయడానికి మాకు ఉపయోగ కేసు ఉంటే, అప్పుడు మాకు స్టేట్-ఫుల్ DStreams అవసరం.

ఉదాహరణకు, వినియోగదారు సెషన్‌లో వెబ్‌సైట్‌లో వినియోగదారు ఇంటరాక్షన్‌ను మేము ట్రాక్ చేయవచ్చు లేదా మేము ఒక నిర్దిష్ట ట్విట్టర్ హ్యాష్‌ట్యాగ్‌ను కాలక్రమేణా ట్రాక్ చేయవచ్చు మరియు ప్రపంచవ్యాప్తంగా ఏ వినియోగదారులు దీని గురించి మాట్లాడుతున్నారో చూడవచ్చు.

స్టేట్-ఫుల్ ట్రాన్స్ఫర్మేషన్ రకాలు.



విండోస్ ఆధారిత ట్రాకింగ్ మరియు పూర్తి సెషన్ ట్రాకింగ్ - స్టేట్-ఫుల్ DStreams రెండు రకాలు.

స్టేట్‌ఫుల్ ట్రాకింగ్ కోసం అన్ని ఇన్‌కమింగ్ డేటాను కీ-విలువ జతలుగా మార్చాలి, అంటే కీలక రాష్ట్రాలను బ్యాచ్‌లలో ట్రాక్ చేయవచ్చు. ఇది ముందస్తు షరతు.

చెక్ పాయింట్స్ ను కూడా ప్రారంభించాలి, ఈ భావన తరువాత బ్లాగులలో చర్చిస్తాము.

> విండో ఆధారిత ట్రాకింగ్

విండో ఆధారిత ట్రాకింగ్‌లో ఇన్‌కమింగ్ బ్యాచ్‌లు సమయ వ్యవధిలో సమూహం చేయబడతాయి, అనగా సమూహం ప్రతి ‘x’ సెకన్లలో బ్యాచ్ చేస్తుంది. ఈ బ్యాచ్‌లపై మరింత గణనలను స్లైడ్ విరామాలను ఉపయోగించి చేస్తారు.

ఉదాహరణకు, విండో విరామం = 3 సెకన్లు మరియు స్లైడ్ విరామం = 2 సెకన్లు ఉంటే, అప్పుడు అన్ని ఇన్కమింగ్ డేటా ప్రతి 3 సెకన్లకు బ్యాచ్లలో సమూహం చేయబడుతుంది మరియు ఈ బ్యాచ్లలోని గణనలు ప్రతి 2 సెకన్లకు జరుగుతాయి. ప్రత్యామ్నాయంగా, చివరి 3 సెకన్లలో వచ్చిన బ్యాచ్‌లపై ప్రతి 2 సెకన్లకు గణనలను చేయండి.

spark-streaming-dstream-window

పై రేఖాచిత్రంలో, ఇన్కమింగ్ బ్యాచ్‌లు ప్రతి 3 యూనిట్ల సమయం (విండో విరామం) గా వర్గీకరించబడిందని మరియు గణనలు ప్రతి 2 యూనిట్ల సమయం (స్లైడ్ విరామం) లో జరుగుతాయని మనం చూస్తాము.
గమనిక: అపాచీ ఫ్లింక్ మాదిరిగా కాకుండా, అపాచీ స్పార్క్ కి విండోను దొర్లే భావన లేదు, అన్ని విండోస్ స్లైడింగ్ అవుతున్నాయి.

మంట

విండో ఆధారిత పరివర్తనాల కోసం ఒక ప్రసిద్ధ API

PairDStreamFunctions.reduceByKeyAndWindow .

ఈ API యొక్క అనేక ఓవర్‌లోడ్ వెర్షన్లు ఉన్నాయి, ఎక్కువ సంఖ్యలో పారామితులను కలిగి ఉన్నదాన్ని చూద్దాం. ఈ వివరణ తరువాత ఈ API యొక్క మిగిలిన ఓవర్‌లోడ్ వెర్షన్లు స్వీయ వివరణాత్మకంగా ఉండాలి.

రిటర్న్స్: రూపాంతరం చెందిన DStream [(K, V)]

తగ్గించుఫంక్ : అసోసియేటివ్ ఫంక్షన్‌ను తగ్గిస్తుంది.

invReduceFunc : పై విలోమం ఫంక్షన్‌ను తగ్గిస్తుంది. ఇన్కమింగ్ మరియు అవుట్గోయింగ్ బ్యాచ్ల సమర్థవంతమైన కంప్యూటింగ్ కోసం ఇది అవసరం. ఈ ఫంక్షన్ సహాయంతో అవుట్గోయింగ్ అవుతున్న బ్యాచ్‌ల విలువ పైన పేర్కొన్న ఫంక్షన్ యొక్క పేరుకుపోయిన విలువ నుండి తీసివేయబడుతుంది. ఉదాహరణకు, మేము సంబంధిత కీల కోసం ఇన్కమింగ్ విలువల మొత్తాన్ని కంప్యూట్ చేస్తుంటే, అవుట్గోయింగ్ బ్యాచ్‌ల కోసం మేము సంబంధిత కీల కోసం విలువలను తీసివేస్తాము (అవి ప్రస్తుత బ్యాచ్‌లో ఉన్నట్లయితే అవి విస్మరించబడతాయి).

విండో వ్యవధి : బ్యాచ్‌లను సమూహపరచడానికి సమయం యూనిట్లు, ఇది బ్యాచ్ విరామంలో బహుళంగా ఉండాలి.

స్లైడ్ వ్యవధి : గణన కోసం సమయం యూనిట్లు, ఇది బ్యాచ్ విరామంలో బహుళంగా ఉండాలి. విభజనలు : ఫలిత DStream ని నిల్వ చేయడానికి ఉపయోగించే విభజన. విభజనపై మరింత సమాచారం కోసం చదవండి ఇది .

filterFunc : గడువు ముగిసిన కీ-విలువ జతలను ఫిల్టర్ చేసే ఫంక్షన్, అనగా, ఒక కీ కోసం కొంతకాలం నవీకరణ మాకు రాకపోతే, దాన్ని తీసివేయాలని మేము అనుకోవచ్చు.

సి ++ లో నేమ్‌స్పేస్‌ను ఎలా ఉపయోగించాలి

ఇక్కడ ఒక ప్రోగ్రామ్ సాకెట్ స్ట్రీమ్ నుండి వచ్చే పదాలను లెక్కించడానికి. పై ఫంక్షన్ యొక్క ఓవర్‌లోడ్ వెర్షన్‌ను 4 సెకన్ల విండో విరామం మరియు 2 సెకన్ల స్లైడ్ విరామంతో ఉపయోగించాము.

నా తదుపరి బ్లాగులో నేను పూర్తి సెషన్ ట్రాకింగ్ మరియు చెక్ పాయింట్ గురించి వ్రాస్తాను.

మాకు ప్రశ్న ఉందా? దయచేసి దీన్ని వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము మిమ్మల్ని సంప్రదిస్తాము.

సంబంధిత పోస్ట్లు:

బ్రాడ్కాస్ట్ వేరియబుల్స్ తో పంపిణీ కాషింగ్