స్పార్క్ అక్యుమ్యులేటర్లు వివరించబడ్డాయి: అపాచీ స్పార్క్



ఈ అపాచీ స్పార్క్ బ్లాగ్ స్పార్క్ సంచితాలను వివరంగా వివరిస్తుంది. ఉదాహరణలతో స్పార్క్ అక్యుమ్యులేటర్ వాడకాన్ని తెలుసుకోండి. స్పార్క్ అక్యుమ్యులేటర్లు హడూప్ మ్యాప్రెడ్యూస్ కౌంటర్ల వంటివి.

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

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





సంచితాలు అంటే ఏమిటి?

సంచితాలు అంటే వేరియబుల్స్, ఇవి ఎగ్జిక్యూటర్లలో సమాచారాన్ని సమగ్రపరచడానికి ఉపయోగిస్తారు. ఉదాహరణకు, ఈ సమాచారం ఎన్ని రికార్డులు పాడైంది లేదా నిర్దిష్ట లైబ్రరీ API ని ఎన్నిసార్లు పిలిచారు వంటి డేటా లేదా API నిర్ధారణకు సంబంధించినది.

మనకు సంచితాలు ఎందుకు అవసరమో అర్థం చేసుకోవడానికి, ఒక చిన్న ఉదాహరణ చూద్దాం.



మధ్య కోల్‌కతా ప్రాంతంలోని దుకాణాల గొలుసు లావాదేవీల inary హాత్మక లాగ్ ఇక్కడ ఉంది.

logs-Spark-accumulators

4 క్షేత్రాలు ఉన్నాయి,

ఫీల్డ్ 1 -> నగరం



ఫీల్డ్ 2 -> ప్రాంతం

ఫీల్డ్ 3 -> అమ్మిన వస్తువు యొక్క వర్గం

ఫీల్డ్ 4 -> అమ్మిన వస్తువు విలువ

అయితే, లాగ్‌లు పాడైపోతాయి. ఉదాహరణకు, రెండవ పంక్తి ఖాళీ పంక్తి, నాల్గవ పంక్తి కొన్ని నెట్‌వర్క్ సమస్యలను నివేదిస్తుంది మరియు చివరికి చివరి పంక్తి సున్నా అమ్మకపు విలువను చూపిస్తుంది (ఇది జరగదు!).

ఖాళీ లాగ్‌ల సంఖ్య (ఖాళీ పంక్తులు), నెట్‌వర్క్ ఎన్నిసార్లు విఫలమైంది, ఒక వర్గం లేని ఏదైనా ఉత్పత్తి లేదా సున్నా అమ్మకాలు ఎన్నిసార్లు ఉన్నాయో తెలుసుకోవడానికి లావాదేవీ లాగ్‌ను విశ్లేషించడానికి మేము సంచితాలను ఉపయోగించవచ్చు. పూర్తి నమూనా లాగ్ కనుగొనవచ్చు ఇక్కడ .
ఏదైనా ఆపరేషన్‌కు సంచితాలు వర్తిస్తాయి,
1. కమ్యుటేటివ్ -> f (x, y) = f (y, x) , మరియు
2. అసోసియేటివ్ -> f (f (x, y), z) = f (f (x, z), y) = f (f (y, z), x)
ఉదాహరణకి, మొత్తం మరియు గరిష్టంగా విధులు పై పరిస్థితులను సంతృప్తిపరుస్తాయి సగటు అది కాదు.

స్పార్క్ అక్యుమ్యులేటర్లను ఎందుకు ఉపయోగించాలి?

ఇప్పుడు మనకు సంచితాలు ఎందుకు అవసరం మరియు దిగువ కోడ్‌లో చూపిన విధంగా వేరియబుల్స్‌ను ఎందుకు ఉపయోగించకూడదు.

పై కోడ్‌లో సమస్య ఏమిటంటే డ్రైవర్ వేరియబుల్‌ను ప్రింట్ చేసినప్పుడు ఖాళీ లైన్లు దాని విలువ సున్నా అవుతుంది. ఎందుకంటే స్పార్క్ ఈ కోడ్‌ను ప్రతి ఎగ్జిక్యూటర్‌కు పంపినప్పుడు వేరియబుల్స్ ఆ ఎగ్జిక్యూటర్‌కు స్థానికంగా మారుతాయి మరియు దాని నవీకరించబడిన విలువ డ్రైవర్‌కు తిరిగి ప్రసారం చేయబడదు. ఈ సమస్యను నివారించడానికి మనం తయారు చేసుకోవాలి ఖాళీ లైన్లు ప్రతి ఎగ్జిక్యూటర్‌లోని ఈ వేరియబుల్‌కు సంబంధించిన అన్ని నవీకరణలు డ్రైవర్‌కు తిరిగి ప్రసారం చేయబడతాయి. కాబట్టి పై కోడ్ ఇలా వ్రాయాలి,

ఇది సంచితం అని హామీ ఇస్తుంది ఖాళీ లైన్లు ప్రతి ఎగ్జిక్యూటర్ అంతటా నవీకరించబడుతుంది మరియు నవీకరణలు డ్రైవర్‌కు తిరిగి ప్రసారం చేయబడతాయి.

జావాలో స్ట్రింగ్ యొక్క డిఫాల్ట్ విలువ

నెట్‌వర్క్ లోపాలు లేదా సున్నా అమ్మకపు విలువ మొదలైన వాటి కోసం మేము ఇతర కౌంటర్లను అమలు చేయవచ్చు. ఇతర కౌంటర్ల అమలుతో పాటు పూర్తి సోర్స్ కోడ్‌ను కనుగొనవచ్చు ఇక్కడ .

హడూప్ మ్యాప్-రిడ్యూస్ గురించి తెలిసిన వ్యక్తులు స్పార్క్ యొక్క సంచితాలు హడూప్ యొక్క మ్యాప్-రిడ్యూస్ కౌంటర్ల మాదిరిగానే ఉన్నాయని గమనించవచ్చు.

కేవిట్స్

సంచితాలను ఉపయోగిస్తున్నప్పుడు ప్రోగ్రామర్‌లుగా మనం తెలుసుకోవలసిన కొన్ని జాగ్రత్తలు ఉన్నాయి,

  1. లోపల గణనలు పరివర్తనాలు సోమరితనం మూల్యాంకనం చేయబడతాయి, కాబట్టి తప్ప చర్య RDD లో జరుగుతుంది పరివర్తనాలు అమలు చేయబడలేదు. దీని ఫలితంగా, లోపల పనిచేసే సంచితాలు వంటివి మ్యాప్ () లేదా ఫిల్టర్ () కొన్ని తప్ప అమలు చేయబడవు చర్య RDD లో జరుగుతుంది.
  2. సంచితాలను నవీకరించడానికి స్పార్క్ హామీ ఇస్తుంది లోపల చర్యలు ఒక్కసారి మాత్రమే . కాబట్టి ఒక పని పున ar ప్రారంభించబడి, వంశం తిరిగి కంప్యూట్ చేయబడినా, సంచితాలు ఒక్కసారి మాత్రమే నవీకరించబడతాయి.
  3. దీనికి స్పార్క్ హామీ ఇవ్వదు పరివర్తనాలు . కాబట్టి ఒక పని పున ar ప్రారంభించబడి, వంశం తిరిగి కంప్యూట్ చేయబడితే, సంచితాలు ఒకటి కంటే ఎక్కువసార్లు నవీకరించబడినప్పుడు అవాంఛనీయ దుష్ప్రభావాలు వచ్చే అవకాశాలు ఉన్నాయి.

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

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

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

అపాచీ స్పార్క్ కలయికబైకే వివరించబడింది