HBase ఆర్కిటెక్చర్
నా మునుపటి బ్లాగులో HBase ట్యుటోరియల్ , నేను HBase మరియు దాని లక్షణాలను వివరించాను. మంచిగా కనెక్ట్ అవ్వడానికి మీకు సహాయపడటానికి నేను ఫేస్బుక్ మెసెంజర్ కేస్ స్టడీని కూడా ప్రస్తావించాను. ఇప్పుడు మనలో మరింత ముందుకు సాగుతోంది , HBase మరియు HBase ఆర్కిటెక్చర్ యొక్క డేటా మోడల్ను నేను మీకు వివరిస్తాను.మీరు కొనసాగడానికి ముందు, HBase అనేది ఒక ముఖ్యమైన భావన అని మీరు తెలుసుకోవాలి బిగ్ డేటా హడూప్ సర్టిఫికేషన్ కోసం.
ఈ HBase ఆర్కిటెక్చర్ బ్లాగులో నేను మిమ్మల్ని తీసుకెళ్తున్న ముఖ్యమైన విషయాలు:
- HBase డేటా మోడల్
- HBase ఆర్కిటెక్చర్ మరియు ఇది భాగాలు
- HBase రైట్ మెకానిజం
- HBase రీడ్ మెకానిజం
- HBase పనితీరు ఆప్టిమైజేషన్ మెకానిజమ్స్
మొదట HBase యొక్క డేటా మోడల్ను అర్థం చేసుకుందాం. ఇది వేగంగా చదవడానికి / వ్రాయడానికి మరియు శోధనలలో HBase కి సహాయపడుతుంది.
HBase ఆర్కిటెక్చర్: HBase డేటా మోడల్
మనకు తెలిసినట్లుగా, HBase అనేది కాలమ్-ఆధారిత NoSQL డేటాబేస్. ఇది వరుసలు మరియు నిలువు వరుసలను కలిగి ఉన్న రిలేషనల్ డేటాబేస్ మాదిరిగానే కనిపిస్తున్నప్పటికీ, ఇది రిలేషనల్ డేటాబేస్ కాదు. రిలేషనల్ డేటాబేస్లు వరుస ఆధారితమైనవి అయితే HBase కాలమ్-ఆధారితమైనవి. కాబట్టి, మొదట కాలమ్-ఆధారిత మరియు రో-ఆధారిత డేటాబేస్ల మధ్య వ్యత్యాసాన్ని అర్థం చేసుకుందాం:
వరుస-ఆధారిత vs కాలమ్-ఆధారిత డేటాబేస్లు:
- వరుస-ఆధారిత డేటాబేస్లు పట్టిక రికార్డులను వరుసల వరుసలో నిల్వ చేస్తాయి. అయితే కాలమ్-ఆధారిత డేటాబేస్నిలువు వరుసల క్రమంలో టేబుల్ రికార్డులను నిల్వ చేయండి, అనగా ఒక కాలమ్లోని ఎంట్రీలు డిస్క్లలోని వరుస స్థానాల్లో నిల్వ చేయబడతాయి.
దీన్ని బాగా అర్థం చేసుకోవడానికి, మనం ఒక ఉదాహరణ తీసుకొని క్రింది పట్టికను పరిశీలిద్దాం.
ఈ పట్టిక వరుస-ఆధారిత డేటాబేస్లో నిల్వ చేయబడితే. ఇది క్రింద చూపిన విధంగా రికార్డులను నిల్వ చేస్తుంది:
ఒకటి,పాల్ వాకర్,యుఎస్,231,అందమైన,
2, విన్ డీజిల్,బ్రెజిల్,520,ముస్తాంగ్
వరుస-ఆధారిత డేటాబేస్లలో మీరు పైన చూడగలిగినట్లుగా డేటా వరుసలు లేదా టుపుల్స్ ఆధారంగా నిల్వ చేయబడుతుంది.
కాలమ్-ఆధారిత డేటాబేస్లు ఈ డేటాను ఇలా నిల్వ చేస్తాయి:
ఒకటి,2, పాల్ వాకర్,విన్ డీజిల్, యుఎస్,బ్రెజిల్, 231,520, అందమైన,ముస్తాంగ్
కాలమ్-ఆధారిత డేటాబేస్లలో, అన్ని కాలమ్ విలువలు మొదటి కాలమ్ విలువలు కలిసి నిల్వ చేయబడతాయి, తరువాత రెండవ కాలమ్ విలువలు కలిసి నిల్వ చేయబడతాయి మరియు ఇతర నిలువు వరుసలలోని డేటా ఇదే పద్ధతిలో నిల్వ చేయబడుతుంది.
- డేటా మొత్తం చాలా పెద్దగా ఉన్నప్పుడు, పెటాబైట్స్ లేదా ఎక్సాబైట్ల మాదిరిగా, మేము కాలమ్-ఆధారిత విధానాన్ని ఉపయోగిస్తాము, ఎందుకంటే ఒకే కాలమ్ యొక్క డేటా కలిసి నిల్వ చేయబడుతుంది మరియు వేగంగా యాక్సెస్ చేయవచ్చు.
- వరుస-ఆధారిత విధానం తక్కువ సంఖ్యలో వరుసలు మరియు నిలువు వరుసలను సమర్థవంతంగా నిర్వహిస్తుంది, ఎందుకంటే వరుస-ఆధారిత డేటాబేస్ స్టోర్స్ డేటా నిర్మాణాత్మక ఆకృతి.
- మేము సెమీ స్ట్రక్చర్డ్ లేదా స్ట్రక్చర్డ్ డేటా యొక్క పెద్ద సమితిని ప్రాసెస్ చేసి విశ్లేషించాల్సిన అవసరం వచ్చినప్పుడు, మేము కాలమ్ ఆధారిత విధానాన్ని ఉపయోగిస్తాము. అనువర్తనాలు వ్యవహరించడం వంటివి ఆన్లైన్ అనలిటికల్ ప్రాసెసింగ్ డేటా మైనింగ్, డేటా గిడ్డంగి, విశ్లేషణలతో సహా అనువర్తనాలు మొదలైనవి.
- కాగా, ఆన్లైన్ లావాదేవీ ప్రాసెసింగ్ నిర్మాణాత్మక డేటాను నిర్వహించే మరియు లావాదేవీ లక్షణాలు (ACID లక్షణాలు) అవసరమయ్యే బ్యాంకింగ్ మరియు ఫైనాన్స్ డొమైన్ల వంటివి వరుస-ఆధారిత విధానాన్ని ఉపయోగిస్తాయి.
HBase పట్టికలు క్రింది చిత్రాలను కలిగి ఉన్నాయి, ఈ క్రింది చిత్రంలో చూపబడ్డాయి:
- పట్టికలు : డేటా టేబుల్ ఫార్మాట్లో హెచ్బేస్లో నిల్వ చేయబడుతుంది. కానీ ఇక్కడ పట్టికలు కాలమ్-ఆధారిత ఆకృతిలో ఉన్నాయి.
- అడ్డు వరుస కీ : శోధనలను వేగంగా చేసే రికార్డులను శోధించడానికి వరుస కీలు ఉపయోగించబడతాయి. ఎలా తెలుసుకోవాలనే ఆసక్తి మీకు ఉంటుంది? ఈ బ్లాగులో ముందుకు సాగే ఆర్కిటెక్చర్ భాగంలో నేను దానిని వివరిస్తాను.
- కాలమ్ కుటుంబాలు : కాలమ్ కుటుంబంలో వివిధ నిలువు వరుసలు కలుపుతారు. ఈ కాలమ్ కుటుంబాలు కలిసి నిల్వ చేయబడతాయి, ఇది శోధన ప్రక్రియను వేగవంతం చేస్తుంది ఎందుకంటే ఒకే కాలమ్ కుటుంబానికి చెందిన డేటాను ఒకే అన్వేషణలో కలిసి యాక్సెస్ చేయవచ్చు.
- కాలమ్ క్వాలిఫైయర్స్ : ప్రతి కాలమ్ పేరును దాని కాలమ్ క్వాలిఫైయర్ అంటారు.
- సెల్ : డేటా కణాలలో నిల్వ చేయబడుతుంది. రౌకీ మరియు కాలమ్ క్వాలిఫైయర్లచే ప్రత్యేకంగా గుర్తించబడిన కణాలలోకి డేటా వేయబడుతుంది.
- టైమ్స్టాంప్ : టైమ్స్టాంప్ తేదీ మరియు సమయం కలయిక. డేటా నిల్వ చేయబడినప్పుడల్లా, దాని టైమ్స్టాంప్తో నిల్వ చేయబడుతుంది. ఇది డేటా యొక్క నిర్దిష్ట సంస్కరణ కోసం శోధించడం సులభం చేస్తుంది.
మరింత సరళమైన మరియు అర్థం చేసుకునే విధంగా, HBase వీటిని కలిగి ఉంటుందని మేము చెప్పగలం:
- పట్టికల సమితి
- కాలమ్ కుటుంబాలు మరియు వరుసలతో ప్రతి పట్టిక
- రో కీ HBase లో ప్రాథమిక కీగా పనిచేస్తుంది.
- HBase పట్టికలకు ఏదైనా ప్రాప్యత ఈ ప్రాథమిక కీని ఉపయోగిస్తుంది
- HBase లో ఉన్న ప్రతి కాలమ్ క్వాలిఫైయర్ సెల్ లో నివసించే వస్తువుకు సంబంధించిన లక్షణాన్ని సూచిస్తుంది.
ఇప్పుడు మీకు HBase డేటా మోడల్ గురించి తెలుసు, ఈ డేటా మోడల్ HBase ఆర్కిటెక్చర్కు అనుగుణంగా ఎలా వస్తుందో చూద్దాం మరియు ఇది పెద్ద నిల్వ మరియు వేగవంతమైన ప్రాసెసింగ్కు అనుకూలంగా ఉంటుంది.
HBase ఆర్కిటెక్చర్: HBase ఆర్కిటెక్చర్ యొక్క భాగాలు
HBase లో మూడు ప్రధాన భాగాలు ఉన్నాయి, అనగా, HMaster సర్వర్ , HBase రీజియన్ సర్వర్, ప్రాంతాలు మరియు జూకీపర్ .
దిగువ బొమ్మ HBase ఆర్కిటెక్చర్ యొక్క సోపానక్రమం గురించి వివరిస్తుంది. మేము ప్రతి ఒక్కరి గురించి వ్యక్తిగతంగా మాట్లాడుతాము.
ఇప్పుడు HMaster కి వెళ్ళే ముందు, ఈ సర్వర్లన్నీ (HMaster, Region Server, Zookeeper) ప్రాంతాలను సమన్వయం చేయడానికి మరియు నిర్వహించడానికి మరియు ప్రాంతాలలో వివిధ కార్యకలాపాలను నిర్వహించడానికి ఉంచబడినందున మేము ప్రాంతాలను అర్థం చేసుకుంటాము. కాబట్టి ప్రాంతాలు ఏమిటో తెలుసుకోవడానికి మీకు ఆసక్తి ఉంటుంది మరియు అవి ఎందుకు అంత ముఖ్యమైనవి?
HBase ఆర్కిటెక్చర్: ప్రాంతం
ఒక ప్రాంతం ప్రారంభ కీ మరియు ఆ ప్రాంతానికి కేటాయించిన ముగింపు కీ మధ్య అన్ని అడ్డు వరుసలను కలిగి ఉంటుంది. కాలమ్ కుటుంబం యొక్క అన్ని నిలువు వరుసలు ఒక ప్రాంతంలో నిల్వ చేయబడిన విధంగా HBase పట్టికలను అనేక ప్రాంతాలుగా విభజించవచ్చు. ప్రతి ప్రాంతం క్రమబద్ధీకరించిన క్రమంలో వరుసలను కలిగి ఉంటుంది.
అనేక ప్రాంతాలు a కి కేటాయించబడ్డాయి ప్రాంత సర్వర్ , ఆ ప్రాంతాల సమితిలో కార్యకలాపాలను నిర్వహించడం, నిర్వహించడం, అమలు చేయడం మరియు వ్రాయడం బాధ్యత.
కాబట్టి, సరళమైన రీతిలో ముగించారు:
- పట్టికను అనేక ప్రాంతాలుగా విభజించవచ్చు. ఒక ప్రాంతం అనేది ప్రారంభ కీ మరియు ముగింపు కీ మధ్య డేటాను నిల్వ చేసే వరుసల శ్రేణి.
- ఒక ప్రాంతం 256MB యొక్క డిఫాల్ట్ పరిమాణాన్ని కలిగి ఉంది, ఇది అవసరానికి అనుగుణంగా కాన్ఫిగర్ చేయవచ్చు.
- ప్రాంతాల సమూహం ఖాతాదారులకు ప్రాంతీయ సర్వర్ ద్వారా అందించబడుతుంది.
- ప్రాంతీయ సర్వర్ క్లయింట్కు సుమారు 1000 ప్రాంతాలను అందించగలదు.
ఇప్పుడు సోపానక్రమం ఎగువ నుండి మొదలుపెట్టి, నేను మొదట మీకు నేమ్నోడ్ వలె పనిచేసే HMaster సర్వర్ గురించి వివరించాలనుకుంటున్నాను HDFS . అప్పుడు, సోపానక్రమంలో కదులుతున్నప్పుడు, నేను మిమ్మల్ని జూకీపర్ మరియు రీజియన్ సర్వర్ ద్వారా తీసుకువెళతాను.
HBase ఆర్కిటెక్చర్: HMaster
దిగువ చిత్రంలో ఉన్నట్లుగా, డేటా మాస్టర్లో నివసించే రీజియన్ సర్వర్ యొక్క సేకరణను HMaster నిర్వహిస్తుందని మీరు చూడవచ్చు. HMaster ఎలా చేస్తుందో అర్థం చేసుకుందాం.
- HBase HMaster DDL కార్యకలాపాలను నిర్వహిస్తుంది (పట్టికలను సృష్టించండి మరియు తొలగించండి) మరియు పై చిత్రంలో మీరు చూడగలిగే విధంగా ప్రాంతాలను ప్రాంతీయ సర్వర్లకు కేటాయిస్తుంది.
- ఇది రీజియన్ సర్వర్ను సమన్వయం చేస్తుంది మరియు నిర్వహిస్తుంది (నేమ్నోడ్ హెచ్డిఎఫ్ఎస్లో డేటానోడ్ను నిర్వహిస్తుంది).
- ఇది ప్రారంభంలో రీజియన్ సర్వర్లకు ప్రాంతాలను కేటాయిస్తుంది మరియు రికవరీ మరియు లోడ్ బ్యాలెన్సింగ్ సమయంలో ప్రాంతాలను రీజియన్ సర్వర్లకు తిరిగి కేటాయిస్తుంది.
- ఇది క్లస్టర్లోని అన్ని రీజియన్ సర్వర్ యొక్క సందర్భాలను పర్యవేక్షిస్తుంది (జూకీపర్ సహాయంతో) మరియు ఏదైనా రీజియన్ సర్వర్ డౌన్ అయినప్పుడల్లా రికవరీ కార్యకలాపాలను చేస్తుంది.
- ఇది పట్టికలను సృష్టించడానికి, తొలగించడానికి మరియు నవీకరించడానికి ఒక ఇంటర్ఫేస్ను అందిస్తుంది.
శ్రేణి జావాలో అతిపెద్ద సంఖ్యను కనుగొనడం
HBase పంపిణీ మరియు భారీ వాతావరణాన్ని కలిగి ఉంది, ఇక్కడ ప్రతిదీ నిర్వహించడానికి HMaster మాత్రమే సరిపోదు. కాబట్టి, ఈ భారీ వాతావరణాన్ని నిర్వహించడానికి HMaster కి ఏది సహాయపడుతుందని మీరు ఆలోచిస్తున్నారా? అక్కడే జూకీపర్ చిత్రంలోకి వస్తాడు. HMaster HBase పర్యావరణాన్ని ఎలా నిర్వహిస్తుందో మేము అర్థం చేసుకున్న తరువాత, పర్యావరణ నిర్వహణలో జూకీపర్ HMaster కి ఎలా సహాయం చేస్తారో మేము అర్థం చేసుకుంటాము.
HBase ఆర్కిటెక్చర్: జూకీపర్ - సమన్వయకర్త
ఈ క్రింది చిత్రం జూకీపర్ యొక్క సమన్వయ విధానాన్ని వివరిస్తుంది.
- జూకీపర్ హెచ్బేస్ పంపిణీ వాతావరణంలో సమన్వయకర్తలా వ్యవహరిస్తాడు. సెషన్ల ద్వారా కమ్యూనికేట్ చేయడం ద్వారా క్లస్టర్ లోపల సర్వర్ స్థితిని నిర్వహించడానికి ఇది సహాయపడుతుంది.
- హెచ్మాస్టర్ సర్వర్తో పాటు ప్రతి రీజియన్ సర్వర్ జూకీపర్కు క్రమమైన విరామంలో నిరంతర హృదయ స్పందనను పంపుతుంది మరియు పై చిత్రంలో పేర్కొన్న విధంగా ఏ సర్వర్ సజీవంగా ఉందో మరియు అందుబాటులో ఉందో తనిఖీ చేస్తుంది. ఇది సర్వర్ వైఫల్య నోటిఫికేషన్లను కూడా అందిస్తుంది, తద్వారా రికవరీ చర్యలు అమలు చేయబడతాయి.
- మీరు చూడగలిగే పై చిత్రం నుండి ప్రస్తావిస్తూ, నిష్క్రియాత్మక సర్వర్ ఉంది, ఇది క్రియాశీల సర్వర్కు బ్యాకప్గా పనిచేస్తుంది. క్రియాశీల సర్వర్ విఫలమైతే, అది రెస్క్యూ కోసం వస్తుంది.
- క్రియాశీల HMaster హృదయ స్పందనలను జూకీపర్కు పంపుతుంది, అయితే నిష్క్రియాత్మక HMaster క్రియాశీల HMaster పంపిన నోటిఫికేషన్ కోసం వింటుంది. క్రియాశీల HMaster హృదయ స్పందనను పంపడంలో విఫలమైతే సెషన్ తొలగించబడుతుంది మరియు నిష్క్రియాత్మక HMaster చురుకుగా మారుతుంది.
- రీజియన్ సర్వర్ హృదయ స్పందనను పంపడంలో విఫలమైతే, సెషన్ గడువు ముగిసింది మరియు శ్రోతలందరికీ దాని గురించి తెలియజేయబడుతుంది. అప్పుడు HMaster తగిన రికవరీ చర్యలను చేస్తుంది, ఈ బ్లాగులో మేము తరువాత చర్చిస్తాము.
- జూకీపర్ .మెటా సర్వర్ యొక్క మార్గాన్ని కూడా నిర్వహిస్తుంది, ఇది ఏదైనా క్లయింట్ను ఏ ప్రాంతానికైనా శోధించడంలో సహాయపడుతుంది. క్లయింట్ మొదట .మెటా సర్వర్తో తనిఖీ చేయాలి, దీనిలో రీజియన్ సర్వర్ ఒక ప్రాంతం చెందినది, మరియు అది ఆ ప్రాంత సర్వర్ యొక్క మార్గాన్ని పొందుతుంది.
నేను .META సర్వర్ గురించి మాట్లాడుతున్నప్పుడు, .META సర్వర్ అంటే ఏమిటి? కాబట్టి, మీరు జూకీపర్ మరియు .మెటా సర్వర్ యొక్క పనిని సులభంగా అనుసంధానించవచ్చు. తరువాత, ఈ బ్లాగులోని HBase శోధన యంత్రాంగాన్ని నేను మీకు వివరించినప్పుడు, ఈ రెండు సహకారంతో ఎలా పనిచేస్తాయో వివరిస్తాను.
HBase ఆర్కిటెక్చర్: మెటా టేబుల్
- META పట్టిక ప్రత్యేక HBase కేటలాగ్ పట్టిక. ఇది అన్ని ప్రాంతాల సర్వర్ల జాబితాను నిర్వహిస్తుంది HBase నిల్వ వ్యవస్థలో, మీరు పై చిత్రంలో చూడవచ్చు.
- మీరు చూడగలిగే బొమ్మను చూస్తే, .మెటా ఫైల్ పట్టికలు కీలు మరియు విలువల రూపంలో నిర్వహిస్తుంది. కీ ప్రాంతం యొక్క ప్రారంభ కీని మరియు దాని ఐడిని సూచిస్తుంది, అయితే విలువ రీజియన్ సర్వర్ యొక్క మార్గాన్ని కలిగి ఉంటుంది.
నేను ఇప్పటికే చర్చించినట్లుగా, రీజియన్ సర్వర్ మరియు దాని విధులు నేను మీకు ప్రాంతాలను వివరిస్తున్నప్పుడు, ఇప్పుడు మేము సోపానక్రమం క్రిందకు వెళ్తున్నాము మరియు నేను రీజియన్ సర్వర్ యొక్క భాగం మరియు వాటి విధులపై దృష్టి పెడతాను. శోధించడం, చదవడం, రాయడం మరియు ఈ భాగాలన్నీ ఎలా కలిసి పనిచేస్తాయో అర్థం చేసుకునే విధానం గురించి తరువాత చర్చిస్తాను.
HBase ఆర్కిటెక్చర్: రీజియన్ సర్వర్ యొక్క భాగాలు
ఈ క్రింది చిత్రం రీజియన్ సర్వర్ యొక్క భాగాలను చూపుతుంది. ఇప్పుడు, నేను వాటిని విడిగా చర్చిస్తాను.
ఒక ప్రాంత సర్వర్ పైన నడుస్తున్న వివిధ ప్రాంతాలను నిర్వహిస్తుంది . రీజియన్ సర్వర్ యొక్క భాగాలు:
- వాల్: పై చిత్రం నుండి మీరు ముగించినట్లుగా, రైట్ అహెడ్ లాగ్ (WAL) అనేది పంపిణీ చేయబడిన వాతావరణంలోని ప్రతి ప్రాంత సర్వర్కు జతచేయబడిన ఫైల్. శాశ్వత నిల్వకు నిరంతరాయంగా లేదా కట్టుబడి లేని క్రొత్త డేటాను WAL నిల్వ చేస్తుంది. డేటా సెట్లను తిరిగి పొందడంలో విఫలమైతే ఇది ఉపయోగించబడుతుంది.
- బ్లాక్ కాష్: పై చిత్రం నుండి, బ్లాక్ కాష్ రీజియన్ సర్వర్ పైభాగంలో ఉన్నట్లు స్పష్టంగా కనిపిస్తుంది. ఇది తరచుగా చదివే డేటాను మెమరీలో నిల్వ చేస్తుంది. బ్లాక్కాష్లోని డేటా ఇటీవల ఉపయోగించినట్లయితే, ఆ డేటా బ్లాక్కాష్ నుండి తొలగించబడుతుంది.
- మెమ్స్టోర్: ఇది రైట్ కాష్. ఇది ఇన్కమింగ్ డేటాను డిస్కు లేదా శాశ్వత మెమరీకి ఇచ్చే ముందు నిల్వ చేస్తుంది. ఒక ప్రాంతంలోని ప్రతి కాలమ్ కుటుంబానికి ఒక మెమ్స్టోర్ ఉంది. మీరు చిత్రంలో చూడగలిగినట్లుగా, ఒక ప్రాంతానికి బహుళ మెమ్స్టోర్లు ఉన్నాయి ఎందుకంటే ప్రతి ప్రాంతంలో బహుళ కాలమ్ కుటుంబాలు ఉంటాయి. డేటా డిస్క్కు పాల్పడే ముందు లెక్సికోగ్రాఫికల్ క్రమంలో క్రమబద్ధీకరించబడుతుంది.
- HFile: పై బొమ్మ నుండి మీరు HFile HDFS లో నిల్వ చేయబడిందని చూడవచ్చు. అందువలన ఇది వాస్తవ కణాలను డిస్క్లో నిల్వ చేస్తుంది. మెమ్స్టోర్ పరిమాణం దాటినప్పుడు మెమ్స్టోర్ డేటాను హెచ్ఫైల్కు కమిట్ చేస్తుంది.
HBase ఆర్కిటెక్చర్ యొక్క ప్రధాన మరియు చిన్న భాగాలు ఇప్పుడు మనకు తెలుసు, ఇందులో యంత్రాంగం మరియు వారి సహకార కృషిని వివరిస్తాను. ఇది చదవడం లేదా వ్రాయడం, మొదట మనం ఎక్కడ చదవాలి లేదా ఎక్కడ ఫైల్ రాయాలో శోధించాలి. కాబట్టి, ఈ శోధన విధానాన్ని అర్థం చేసుకుందాం, ఎందుకంటే ఇది హెచ్బేస్ను బాగా ప్రాచుర్యం పొందే విధానాలలో ఒకటి.
HBase ఆర్కిటెక్చర్: HBase లో శోధన ఎలా ప్రారంభమవుతుంది?
మీకు తెలిసినట్లుగా, జూకీపర్ మెటా టేబుల్ స్థానాన్ని నిల్వ చేస్తుంది. క్లయింట్ చదివినప్పుడు లేదా HBase కు అభ్యర్ధనలను వ్రాసినప్పుడల్లా క్రింది ఆపరేషన్ జరుగుతుంది:
- క్లయింట్ జూకీపర్ నుండి మెటా పట్టిక యొక్క స్థానాన్ని తిరిగి పొందుతుంది.
- క్లయింట్ దానిని యాక్సెస్ చేయడానికి META పట్టిక నుండి సంబంధిత వరుస కీ యొక్క రీజియన్ సర్వర్ యొక్క స్థానం కోసం అభ్యర్థిస్తుంది. క్లయింట్ ఈ సమాచారాన్ని మెటా టేబుల్ యొక్క స్థానంతో కాష్ చేస్తుంది.
- సంబంధిత రీజియన్ సర్వర్ నుండి అభ్యర్థించడం ద్వారా అది వరుస స్థానాన్ని పొందుతుంది.
భవిష్యత్ సూచనల కోసం, క్లయింట్ మెటా పట్టిక యొక్క స్థానాన్ని తిరిగి పొందడానికి దాని కాష్ను ఉపయోగిస్తుంది మరియు గతంలో వరుస కీ యొక్క రీజియన్ సర్వర్ను చదవండి. అప్పుడు ప్రాంతం META పట్టికను సూచించదు, తప్పిపోయేంత వరకు మరియు ప్రాంతం మార్చబడినందున లేదా తరలించబడినందున. అప్పుడు అది మళ్ళీ మెటా సర్వర్కు అభ్యర్థిస్తుంది మరియు కాష్ను అప్డేట్ చేస్తుంది.
ప్రతిసారీ, క్లయింట్లు మెటా సర్వర్ నుండి రీజియన్ సర్వర్ యొక్క స్థానాన్ని తిరిగి పొందడంలో సమయాన్ని వృథా చేయరు, అందువల్ల ఇది సమయాన్ని ఆదా చేస్తుంది మరియు శోధన ప్రక్రియను వేగవంతం చేస్తుంది. ఇప్పుడు, HBase లో రచన ఎలా జరుగుతుందో మీకు చెప్తాను. ఇందులో ఉన్న భాగాలు ఏమిటి మరియు అవి ఎలా పాల్గొంటాయి?
HBase ఆర్కిటెక్చర్: HBase రైట్ మెకానిజం
ఈ క్రింద ఉన్న చిత్రం HBase లోని వ్రాసే విధానాన్ని వివరిస్తుంది.
వ్రాసే విధానం క్రింది ప్రక్రియ ద్వారా వరుసగా వెళుతుంది (పై చిత్రాన్ని చూడండి):
దశ 1: క్లయింట్కు వ్రాతపూర్వక అభ్యర్థన ఉన్నప్పుడల్లా, క్లయింట్ డేటాను WAL (వ్రాసే ముందు లాగ్) కు వ్రాస్తాడు.
- సవరణలు అప్పుడు WAL ఫైల్ చివరిలో చేర్చబడతాయి.
- ఈ WAL ఫైల్ ప్రతి రీజియన్ సర్వర్లో నిర్వహించబడుతుంది మరియు డిస్క్కు కట్టుబడి లేని డేటాను తిరిగి పొందడానికి రీజియన్ సర్వర్ దీన్ని ఉపయోగిస్తుంది.
దశ 2: WAL కు డేటా వ్రాయబడిన తర్వాత, అది మెమ్స్టోర్కు కాపీ చేయబడుతుంది.
దశ 3: డేటాను మెమ్స్టోర్లో ఉంచిన తర్వాత, క్లయింట్ రసీదు పొందుతుంది.
దశ 4: మెమ్స్టోర్ ప్రవేశానికి చేరుకున్నప్పుడు, అది డేటాను HFile లోకి డంప్ చేస్తుంది లేదా చేస్తుంది.
ఇప్పుడు మనం లోతుగా డైవ్ చేద్దాం మరియు వ్రాసే విధానంలో మెమ్స్టోర్ ఎలా తోడ్పడుతుందో అర్థం చేసుకుందాం మరియు దాని విధులు ఏమిటి?
HBase రైట్ యంత్రాంగం- మెమ్స్టోర్
- మెమ్స్టోర్ ఎల్లప్పుడూ దానిలో నిల్వ చేసిన డేటాను ఒక నిఘంటువు క్రమంలో (వరుసగా నిఘంటువు పద్ధతిలో) క్రమబద్ధీకరించిన కీవాల్యూస్గా నవీకరిస్తుంది. ప్రతి కాలమ్ కుటుంబానికి ఒక మెమ్స్టోర్ ఉంది, అందువలన నవీకరణలు ప్రతి కాలమ్ కుటుంబానికి క్రమబద్ధీకరించబడిన పద్ధతిలో నిల్వ చేయబడతాయి.
- మెమ్స్టోర్ ప్రవేశానికి చేరుకున్నప్పుడు, ఇది మొత్తం డేటాను క్రమబద్ధీకరించిన పద్ధతిలో కొత్త హెచ్ఫైల్లోకి పోస్తుంది. ఈ HFile HDFS లో నిల్వ చేయబడుతుంది. ప్రతి కాలమ్ కుటుంబానికి HBase బహుళ HFiles ని కలిగి ఉంది.
- కాలక్రమేణా, మెమ్స్టోర్ డేటాను డంప్ చేస్తున్నప్పుడు HFile సంఖ్య పెరుగుతుంది.
- మెమ్స్టోర్ చివరి వ్రాతపూర్వక శ్రేణి సంఖ్యను కూడా ఆదా చేస్తుంది, కాబట్టి మాస్టర్ సర్వర్ మరియు మెమ్స్టోర్ ఇద్దరికీ తెలుసు, ఇప్పటివరకు ఏమి కట్టుబడి ఉంది మరియు ఎక్కడ నుండి ప్రారంభించాలో. ప్రాంతం ప్రారంభమైనప్పుడు, చివరి శ్రేణి సంఖ్య చదవబడుతుంది మరియు ఆ సంఖ్య నుండి, క్రొత్త సవరణలు ప్రారంభమవుతాయి.
నేను చాలాసార్లు చర్చించినట్లుగా, HBase నిర్మాణంలో HFile ప్రధాన నిరంతర నిల్వ. చివరికి, అన్ని డేటా HFile కు కట్టుబడి ఉంది, ఇది HBase యొక్క శాశ్వత నిల్వ. అందువల్ల, చదివేటప్పుడు మరియు వ్రాసేటప్పుడు శోధనను వేగవంతం చేసే HFile యొక్క లక్షణాలను చూద్దాం.
HBase ఆర్కిటెక్చర్: HBase రైట్ యంత్రాంగం- HFile
- వ్రాతలు వరుసగా డిస్క్లో ఉంచబడతాయి. కాబట్టి, డిస్క్ యొక్క రీడ్-రైట్ హెడ్ యొక్క కదలిక చాలా తక్కువ. ఇది వ్రాత మరియు శోధన యంత్రాంగాన్ని చాలా వేగంగా చేస్తుంది.
- HFile తెరిచినప్పుడల్లా HFile సూచికలు మెమరీలో లోడ్ అవుతాయి. ఒకే అన్వేషణలో రికార్డును కనుగొనడంలో ఇది సహాయపడుతుంది.
- ట్రైలర్ అనేది HFile యొక్క మెటా బ్లాక్ను సూచించే పాయింటర్. ఇది కట్టుబడి ఉన్న ఫైల్ చివరిలో వ్రాయబడుతుంది. ఇది టైమ్స్టాంప్ మరియు బ్లూమ్ ఫిల్టర్ల గురించి సమాచారాన్ని కలిగి ఉంది.
- కీ విలువ జతలను శోధించడంలో బ్లూమ్ ఫిల్టర్ సహాయపడుతుంది, ఇది అవసరమైన రౌకీలను కలిగి లేని ఫైల్ను దాటవేస్తుంది. టైమ్స్టాంప్ ఫైల్ యొక్క సంస్కరణను శోధించడంలో కూడా సహాయపడుతుంది, ఇది డేటాను దాటవేయడంలో సహాయపడుతుంది.
వ్రాసే విధానం మరియు వేగంగా వ్రాయడంలో వివిధ భాగాల పాత్ర తెలుసుకున్న తరువాత. HBase నిర్మాణంలో పఠన విధానం ఎలా పనిచేస్తుందో నేను మీకు వివరిస్తాను? అప్పుడు మేము సంపీడనం, ప్రాంత విభజన మరియు పునరుద్ధరణ వంటి HBase పనితీరును పెంచే విధానాలకు వెళ్తాము.
HBase ఆర్కిటెక్చర్: మెకానిజం చదవండి
మా సెర్చ్ మెకానిజంలో చర్చించినట్లుగా, మొదట క్లయింట్ దాని కాష్ మెమరీలో క్లయింట్ లేకపోతే .మెటా సర్వర్ నుండి రీజియన్ సర్వర్ యొక్క స్థానాన్ని తిరిగి పొందుతుంది. అప్పుడు ఇది క్రింది దశల ద్వారా వెళుతుంది:
- డేటాను చదవడానికి, స్కానర్ మొదట బ్లాక్ కాష్లోని రో సెల్ కోసం చూస్తుంది. ఇక్కడ ఇటీవల చదివిన అన్ని కీ విలువ జతలు నిల్వ చేయబడతాయి.
- అవసరమైన ఫలితాన్ని కనుగొనడంలో స్కానర్ విఫలమైతే, ఇది మెమ్స్టోర్కు వెళుతుంది, ఎందుకంటే ఇది రైట్ కాష్ మెమరీ అని మనకు తెలుసు. అక్కడ, ఇది ఇటీవల వ్రాసిన ఫైళ్ళ కోసం శోధిస్తుంది, ఇది ఇంకా HFile లో వేయబడలేదు.
- చివరికి, ఇది HFile నుండి డేటాను లోడ్ చేయడానికి బ్లూమ్ ఫిల్టర్లను మరియు బ్లాక్ కాష్ను ఉపయోగిస్తుంది.
ఇప్పటివరకు, నేను HBase యొక్క శోధన, చదవడం మరియు వ్రాసే విధానం గురించి చర్చించాను. ఇప్పుడు మేము HBase యంత్రాంగాన్ని పరిశీలిస్తాము, ఇది HBase లో శోధించడం, చదవడం మరియు త్వరగా వ్రాయడం చేస్తుంది. మొదట, మేము అర్థం చేసుకుంటాము సంపీడనం , ఇది ఆ విధానాలలో ఒకటి.
HBase ఆర్కిటెక్చర్: సంపీడనం
HBase నిల్వను తగ్గించడానికి మరియు చదవడానికి అవసరమైన డిస్క్ అన్వేషణల సంఖ్యను తగ్గించడానికి HFiles ని మిళితం చేస్తుంది. ఈ ప్రక్రియ అంటారు సంపీడనం . సంపీడనం ఒక ప్రాంతం నుండి కొన్ని HFiles ని ఎన్నుకుంటుంది మరియు వాటిని మిళితం చేస్తుంది. పై చిత్రంలో మీరు చూడగలిగే విధంగా రెండు రకాల సంపీడనాలు ఉన్నాయి.
- చిన్న సంపీడనం : HBase స్వయంచాలకంగా చిన్న HFiles ని ఎంచుకుంటుంది మరియు పై చిత్రంలో చూపిన విధంగా వాటిని పెద్ద HFiles కు తిరిగి సిఫార్సు చేస్తుంది. దీన్ని మైనర్ కాంపాక్షన్ అంటారు. ఇది చిన్న HFiles ని పెద్ద HFiles కు పాల్పడటానికి విలీన విధమైన చేస్తుంది. ఇది నిల్వ స్థలం ఆప్టిమైజేషన్కు సహాయపడుతుంది.
- ప్రధాన సంపీడనం: పై చిత్రంలో వివరించినట్లుగా, మేజర్ సంపీడనంలో, HBase ఒక ప్రాంతం యొక్క చిన్న HFiles ను కొత్త HFile కు విలీనం చేస్తుంది మరియు తిరిగి సిఫార్సు చేస్తుంది. ఈ ప్రక్రియలో, ఒకే కాలమ్ కుటుంబాలు కొత్త HFile లో కలిసి ఉంటాయి. ఈ ప్రక్రియలో తొలగించబడిన మరియు గడువు ముగిసిన సెల్ పడిపోతుంది. ఇది రీడ్ పనితీరును పెంచుతుంది.
కానీ ఈ ప్రక్రియలో, ఇన్పుట్-అవుట్పుట్ డిస్కులు మరియు నెట్వర్క్ ట్రాఫిక్ రద్దీగా ఉండవచ్చు. దీనిని అంటారు యాంప్లిఫికేషన్ రాయండి . కాబట్టి, ఇది సాధారణంగా తక్కువ పీక్ లోడ్ సమయాలలో షెడ్యూల్ చేయబడుతుంది.
ఇప్పుడు నేను చర్చించబోయే మరో పనితీరు ఆప్టిమైజేషన్ ప్రక్రియ ప్రాంతం స్ప్లిట్ . లోడ్ బ్యాలెన్సింగ్ కోసం ఇది చాలా ముఖ్యం.
HBase ఆర్కిటెక్చర్: ప్రాంతం స్ప్లిట్
దిగువ బొమ్మ రీజియన్ స్ప్లిట్ మెకానిజమ్ను వివరిస్తుంది.
ఒక ప్రాంతం పెద్దదిగా మారినప్పుడల్లా, పై చిత్రంలో చూపిన విధంగా ఇది రెండు పిల్లల ప్రాంతాలుగా విభజించబడింది. ప్రతి ప్రాంతం మాతృ ప్రాంతంలో సరిగ్గా సగం ప్రాతినిధ్యం వహిస్తుంది. అప్పుడు ఈ విభజన HMaster కు నివేదించబడుతుంది. లోడ్ బ్యాలెన్సింగ్ కోసం HMaster వాటిని కొత్త రీజియన్ సర్వర్కు కేటాయించే వరకు ఇది అదే రీజియన్ సర్వర్ చేత నిర్వహించబడుతుంది.
పంక్తిని క్రిందికి కదిలించడం, చివరిది కాని, వైఫల్యం తర్వాత HBase డేటాను ఎలా తిరిగి పొందుతుందో నేను మీకు వివరిస్తాను. మనకు తెలిసినట్లు వైఫల్యం రికవరీ HBase యొక్క చాలా ముఖ్యమైన లక్షణం, అందువల్ల HBase వైఫల్యం తర్వాత డేటాను ఎలా తిరిగి పొందుతుందో మాకు తెలియజేయండి.
HBase ఆర్కిటెక్చర్: HBase క్రాష్ మరియు డేటా రికవరీ
- రీజియన్ సర్వర్ విఫలమైనప్పుడల్లా, జూకీపర్ వైఫల్యం గురించి HMaster కి తెలియజేస్తాడు.
- అప్పుడు HMaster క్రాష్ అయిన రీజియన్ సర్వర్ యొక్క ప్రాంతాలను అనేక క్రియాశీల ప్రాంత సర్వర్లకు పంపిణీ చేస్తుంది మరియు కేటాయిస్తుంది. విఫలమైన రీజియన్ సర్వర్ యొక్క మెమ్స్టోర్ యొక్క డేటాను తిరిగి పొందడానికి, HMaster అన్ని ప్రాంతీయ సర్వర్లకు WAL ను పంపిణీ చేస్తుంది.
- విఫలమైన ప్రాంతం యొక్క కాలమ్ కుటుంబం కోసం మెమ్స్టోర్ను నిర్మించడానికి ప్రతి ప్రాంత సర్వర్ WAL ను తిరిగి అమలు చేస్తుంది.
- డేటా WAL లో కాలక్రమానుసారం (సకాలంలో) వ్రాయబడింది. అందువల్ల, WAL ను తిరిగి అమలు చేయడం అంటే మెమ్స్టోర్ ఫైల్లో చేసిన మరియు నిల్వ చేసిన అన్ని మార్పులను చేయడం.
- కాబట్టి, అన్ని రీజియన్ సర్వర్లు WAL ను అమలు చేసిన తరువాత, అన్ని కాలమ్ కుటుంబానికి సంబంధించిన మెమ్స్టోర్ డేటా తిరిగి పొందబడుతుంది.
HBase డేటా మోడల్ & HBase ఆర్కిటెక్చర్ను తక్కువగా అర్థం చేసుకోవడంలో ఈ బ్లాగ్ మీకు సహాయపడిందని నేను ఆశిస్తున్నాను. మీరు దాన్ని ఆస్వాదించారని ఆశిస్తున్నాము. ఇప్పుడు మీరు HBase యొక్క లక్షణాలతో సంబంధం కలిగి ఉంటారు (నేను నా మునుపటి వివరించాను HBase ట్యుటోరియల్ బ్లాగ్) HBase ఆర్కిటెక్చర్తో మరియు ఇది అంతర్గతంగా ఎలా పనిచేస్తుందో అర్థం చేసుకోండి. ఇప్పుడు మీకు HBase యొక్క సైద్ధాంతిక భాగం తెలుసు, మీరు ఆచరణాత్మక భాగానికి వెళ్లాలి. దీన్ని దృష్టిలో ఉంచుకుని, మా తదుపరి బ్లాగ్ ఒక నమూనాను వివరిస్తుంది HBase POC .
జావాలో ఓవర్లోడింగ్ vs ఓవర్లోడింగ్
ఇప్పుడు మీరు HBase ఆర్కిటెక్చర్ అర్థం చేసుకున్నారు, చూడండి ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్వర్క్తో విశ్వసనీయ ఆన్లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. రిటైల్, సోషల్ మీడియా, ఏవియేషన్, టూరిజం, ఫైనాన్స్ డొమైన్లో రియల్ టైమ్ యూజ్ కేసులను ఉపయోగించి హెచ్డిఎఫ్ఎస్, నూలు, మ్యాప్రెడ్యూస్, పిగ్, హైవ్, హెచ్బేస్, ఓజీ, ఫ్లూమ్ మరియు స్కూప్లో నిపుణులు కావడానికి ఎడురేకా బిగ్ డేటా హడూప్ సర్టిఫికేషన్ ట్రైనింగ్ కోర్సు సహాయపడుతుంది.
మాకు ప్రశ్న ఉందా? దయచేసి వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము మిమ్మల్ని సంప్రదిస్తాము.