MapReduce projektimit modelet - një hyrje të shkurtër

featured_img

MapReduce projektimit modelet

Përmbledhje: model projektimit është tani një term i përdorur në pothuajse të gjitha fushat e zhvillimit të softuerit. Modelet janë gjë tjetër veçse disa teknika të provuar dhe testuar projektimit përdoret për të zgjidhur problemet e biznesit. MapReduce është një domain teknologji të re dhe ajo gjithashtu ka modelet e veta të projektimit për të zgjidhur çështje të dhënat e llogaritjes.

In this article, Unë do të flasim për modelet e projektimit të ndryshme të përdorura në kuadër MapReduce.

Parathënie: Harta Ulja është përdorur për përpunimin e të dhënave e cila banon në një numër të kompjuterëve. Ajo siguron kufij të qartë dhe dalluese në mes të asaj që ne mund dhe çfarë nuk mund të. Kjo e bën numrin e opcioneve ne duhet të marrin në konsideratë, më i vogël. At the same time, ne mund të kuptoj se si për të zgjidhur një problem me kufizime. modelet e projektimit janë testuar për shumë probleme nga koha në kohë dhe kanë treguar nivelin e duhur të abstraksionit.

modelet e projektimit MapReduce zënë të njëjtin rol në një hapësirë ​​të vogël të problemeve dhe zgjidhjeve. Ato ofrojnë një kuadër të përgjithshëm për të zgjidhur çështjet tona të dhënat e llogaritjes lidhur, pa u përqëndruar në fushën e problemeve. MapReduce dizajn modele të sigurojnë gjithashtu një gjuhë të përbashkët për ekipet që punojnë së bashku për aplikimet MapReduce.

MapReduce Dizajn Pattern: Tani le të shqyrtojmë dizajn të ndryshme afrohet një nga një në pjesën e mëposhtme.

Llogaritja:

Deklarata Problem - Le të konsiderojmë se kemi një pirg të dokumenteve, ku çdo dokument përmban një sërë termave. Tani ne kemi një kërkesë për të llogaritur numrin e dukurive të çdo afat në dokument.

zgjidhja - Në kodin copë vijim kemi një përdorin mekanizmin që thjesht të dhënat e '1' për çdo afat të ballafaqohet. Pranë ngushtimit këtu përshkon të gjithë listën e këtyre njerëzve, përmbledh ato dhe prodhon rezultatin.

Listing 1: Computing Kod - 1

[Code]

klasë Mapper

Metoda Map(id docid, d doc)

për të gjithë t termi në doc d bëjnë

emetoj(t gjatë, akuzë 1)

klasë Reducer

Metoda Ulja(t gjatë, akuza [c1, c2,…])

CNT = 0

për të gjithë numërimin c në [c1, c2,…] bëj

CNT = CNT + c

emetoj(t gjatë, numërimin CNT)

[/Code]

Edhe pse Simple, por kodi më lart ka një disavantazh të qartë se një sasi e lartë e sporteleve bedel janë emetuar nga Mapper. Tani ne mund të zvogëlojë këtë duke mbledhur sportelet për secilin dokument.

Listing 2: Computing Kod - 2

[Code]

klasë Mapper

Metoda Map(id docid, d doc)

HArray = AssociativeArray ri

për të gjithë t termi në doc d bëjnë

HArray{t} = HArray{t} + 1

për të gjithë t gjatë në HArray bëjë

emetoj(t gjatë, numërimin HArray{t})

[/Code]

Now, në mënyrë që të grumbulluar sportelet për të gjitha dokumentet lejon kanë të combiners -

Listing 3: Computing Kod - 3

[Code]

klasë Mapper

Metoda Map(id docid, d doc)

për të gjithë ter termi në doc d bëjnë

emetoj(ter gjatë, akuzë 1)

klasë Combiner

Metoda Kombinoje(ter gjatë, [c1, c2,…])

sum = 0

për të gjithë CNT numërimit në [c1, c2,…] bëj

sum = shuma + CNT

emetoj(t gjatë, të llogarisë shumën e)

klasë Reducer

Metoda Ulja(t gjatë, akuza [c1, c2,…])

totalCnt = 0

për të gjithë CNT numërimit në [c1, c2,…] bëj

totalCnt = totalCnt + CNT

emetoj(t gjatë, numërimin totalCnt)

[/Code]

krahasimin:

Deklarata Problem -

Ne kemi një grup të artikujve dhe disa funksionin e disa artikujve. Tani ajo është e nevojshme për të ruajtur të gjitha sendet që kanë të njëjtën vlerë e funksionit apo të kryejnë disa llogaritje të tjera që kërkon të gjitha sendet e tilla të jenë të përpunuara në një grup.

zgjidhja -

Ne kemi zgjidhje ku mekanizmin llogarit funksionin e dhënë për çdo send dhe të kthimit vlerën e funksionit, si një çelës dhe të sendit, si vlera e tij. Roli i reducer është të shkoj të marr të gjitha sendet e grupuara dhe procesin e tyre ose të shpëtuar ata.

Filtering (grep), Parsing dhe Validation:

Deklarata Problem -

Le të konsiderojmë ne kemi një grup të të dhënave dhe kërkesa është që të mbledhë të gjitha të dhënat që plotësojnë disa kushte, ose transformimin e këtyre të dhënave në disa formate të tjera të përfaqësimit. Pjesa e dytë e problemit përfshin detyra të tilla si - analizë gramatikore të tekstit dhe nxjerrjen e vlerave.

zgjidhja -

Zgjidhje për këtë problem është mjaft i drejtë përpara - ne kemi një përdorin mekanizmin e cila merr një rekord në një kohë dhe të kthehet artikujt të cilat plotësojnë kriteret.

Shpërndarë Task Ekzekutimi:

Deklarata Problem -

Le të konsiderojmë ne kemi një problem të madh kompjuterike të cilat mund të ndahet në pjesë të shumta dhe rezultatet nga të gjitha këto pjesë duhet të kombinohen për të marrë rezultatin përfundimtar.

zgjidhja -

Zgjidhja për këtë problem është për të ndarë specifikimet në një grup të specifikimit të cilat janë ruajtur si të dhëna hyrëse për mappers. Secila nga këto mappers merr një specifikim në një kohë si të dhëna hyrëse dhe proceset e tyre dhe prodhon rezultate. Puna e reducer është që të kombinohen të gjitha këto rezultate dhe prodhon rezultatin përfundimtar.

Përsëritës mesazh Passing:

Deklarata Problem -

Le të konsiderojmë ne kemi një rrjet të subjekteve dhe ekziston një lidhje mes tyre. Ne jemi të detyruar për të llogaritur gjendjen e çdo subjekti të bazuar në pasurinë e subjektit tjetër në lagjen. Kjo gjendje mund të përdoret për të përfaqësuar një distancë në nyjet e tjera që është një tregues se ka një fqinj që ka veti të caktuara dhe karakteristikat.

zgjidhja -

Ne kemi një rrjet i cili ruan një sërë nyjeve dhe çdo nyje përmban të dhënat e listës së ID ngjitur nyjeve. konceptualisht, punët MapReduce janë kryer në mënyrë të përsëritur dhe në çdo përsëritje nyja dërgon mesazhe me fqinjët e saj. Dhe atëherë secili fqinj përditëson gjendjen e saj mbi bazën e mesazhit që është marrë. Këto iterations janë ndërprerë nga disa kushte e.g. Numri maksimal i caktuar iterations. From the technical point of view, Mapper kthen mesazhet për çdo nyje duke përdorur ID e nyjeve ngjitur si një çelës. As a result, të gjitha këto mesazhe janë të grupuara nga nyja hyrëse dhe kështu reducer është në gjendje për rillogaritjen shtetin dhe rewrites nyjen me shtetin e ri.

Listing 4: Përsëritës mesazheve kalimi

[Code]

klasë Mapper

Metoda Map(id fole, kundërshtojnë NObj)

emetoj(id fole, kundërshtojnë NObj)

për të gjithë id Mesi në NObj.OutgoingRelations bëjë

emetoj(id Mesi, mesazhi getMessage(NObj))

klasë Reducer

Metoda Ulja(id m, [s1, s2,…])

M = null

mesazhet = []

për të gjithë s në [s1, s2,…] bëj

nëse IsObject(s) pastaj

M = s

tjetër // s është një mesazh

messages.add(s)

M.State = calculateState(mesazhet)

emetoj(id m, pika M)

[/Code]

Gjerësia First Kërko (Ky është një rast studimor):

Deklarata Problem -

Le të konsiderojmë ne kemi një grafik dhe është e nevojshme për të llogaritur distancën nga një nyje burim për të gjitha nyjet e tjera të pranishme në grafikun. Kjo është quajtur edhe numri i HOPS.

zgjidhja -

Zgjidhja mund të jetë, para lëshon nyja burim 0 për të gjithë fqinjët e saj. Atëherë fqinjtë përhapur këtë counter pasi bën rritjen atë duke 1 për çdo hop.

Vlerat dalluese:

Deklarata Problem -

Le të konsiderojmë ne kemi një grup të të dhënave që përmbajnë fusha M dhe N. Kërkesa është për të numëruar numrin e përgjithshëm të vlerave unike të fushës M për çdo mesin e të njëjtit grup N.

zgjidhja -

Zgjidhja për këtë problem mund të trajtohet në dy faza. Në fazën e parë, mekanizmin prodhon kundërvihet bedel për çdo palë të M dhe N. Pastaj reducer numëron numrin e përgjithshëm të dukurive për çdo palë. Qëllimi i kësaj faze është për të ruajtur unitetin e vlerave M. Në fazën e dytë, çifte janë të grupuara nga N dhe numri total i artikujve llogariten për secilin grup.

Summary: Në këtë artikull ne kemi diskutuar qasje të ndryshme të projektimit të cilat janë përdorur zakonisht për të zgjidhur çështje të dhënat e llogaritjes. MapReduce projektimit modelet janë vazhdimisht evoluon, kështu që ne do të shohim më shumë qasje të projektimit në të ardhmen e afërt. Le të përmbledhim diskutimin tonë në pikat e mëposhtme –

  • Harta reduktuar është përdorur për përpunimin e të dhënave e cila banon në një mori të kompjuterëve.
  • modelet e projektimit janë duke u përdorur për të zgjidhur problemet.
  • Disa përdorur zakonisht modelet e projektimit MapReduce janë të listuara nën -
    • Llogaritja - Numërimit dhe mbledhur
    • krahasimin
    • Filtering Analizë gramatikore dhe Validation
    • Ekzekutimi Shpërndarë detyrë
    • Mesazhi përsëritës kalimi
    • Gjerësia First Kërko
    • dalluese Kërko

 

 

 

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share