Kas ir MapReduce Hadoop? Arhitektūra Piemērs

Satura rādītājs:

Anonim

Kas ir MapReduce Hadoop?

MapReduce ir programmatūras ietvars un programmēšanas modelis, ko izmanto milzīga datu apjoma apstrādei. MapReduce programmas darbs notiek divos posmos, proti, Map un Reduce. Kartes uzdevumi attiecas uz datu sadalīšanu un kartēšanu, savukārt Samaziniet uzdevumu sajaukšanu un samaziniet datus.

Hadoop spēj palaist MapReduce programmas, kas rakstītas dažādās valodās: Java, Ruby, Python un C ++. Map Reduce programmas mākoņdatošanā pēc būtības ir paralēlas, tāpēc ir ļoti noderīgas liela mēroga datu analīzes veikšanai, izmantojot vairākas klastera mašīnas.

Katras fāzes ievads ir atslēgu un vērtību pāri. Turklāt katram programmētājam ir jānorāda divas funkcijas: kartes funkcija un samazināšanas funkcija .

Šajā Hadoop MapReduce iesācēju apmācībā jūs uzzināsiet-

  • Kas ir MapReduce Hadoop?
  • MapReduce arhitektūra lielajos datos ir detalizēti paskaidrota
  • MapReduce Architecture ir sīki izskaidrots
  • Kā MapReduce organizē darbu?

MapReduce arhitektūra lielajos datos ir detalizēti paskaidrota

Viss process iziet četras izpildes fāzes, proti, sadalīšana, kartēšana, sajaukšana un samazināšana.

Tagad šajā MapReduce apmācībā sapratīsim ar MapReduce piemēru-

Apsveriet, ka jums ir šādi MapReduce ievades dati lielo datu programmā

Welcome to Hadoop ClassHadoop is goodHadoop is bad

MapReduce arhitektūra

MapReduce uzdevuma galīgais rezultāts ir

slikti 1
Klase 1
labi 1
Hadoops 3
ir 2
uz 1
Laipni lūdzam 1

Dati iziet šādus MapReduce posmus Big Data

Ievades sadalījumi:

Ievads MapReduce lielo datu darbā ir sadalīts fiksēta lieluma gabalos, kurus sauc par ievades dalījumiem. Ievades sadalījums ir ievades daļa, ko patērē viena karte

Kartēšana

Šis ir pats pirmais kartes samazināšanas programmas izpildes posms. Šajā fāzē dati katrā sadalījumā tiek nodoti kartēšanas funkcijai, lai iegūtu izejas vērtības. Mūsu piemērā kartēšanas fāzes uzdevums ir saskaitīt katra vārda gadījumus no ievades dalījumiem (sīkāka informācija par ievades sadalīšanu ir sniegta zemāk) un saraksta sagatavošana formā

Jaukšana

Šī fāze patērē kartēšanas fāzes izvadi. Tās uzdevums ir konsolidēt attiecīgos ierakstus no kartēšanas fāzes izejas. Mūsu piemērā vieni un tie paši vārdi tiek apvienoti kopā ar to atbilstošo biežumu.

Samazinot

Šajā fāzē tiek apvienotas izejas vērtības no sajaukšanas fāzes. Šī fāze apvieno sajaukšanas fāzes vērtības un atgriež vienu izejas vērtību. Īsāk sakot, šajā posmā tiek apkopota visa datu kopa.

Mūsu piemērā šī fāze apkopo vērtības no sajaukšanas fāzes, ti, aprēķina katra vārda kopējo sastopamību.

MapReduce Architecture ir sīki izskaidrots

  • Katram sadalījumam tiek izveidots viens kartes uzdevums, kas pēc tam izpilda kartes funkciju katram ierakstam sadalījumā.
  • Vienmēr ir izdevīgi, ja ir vairāki sadalījumi, jo laiks, kas nepieciešams sadalījuma apstrādei, ir mazs, salīdzinot ar laiku, kas vajadzīgs visas ievades apstrādei. Kad sadalījumi ir mazāki, apstrādi labāk ielādēt līdzsvaroti, jo mēs sadalījumus apstrādājam paralēli.
  • Tomēr nav arī vēlams, lai šķēlumi būtu pārāk mazi. Kad sadalījumi ir pārāk mazi, sadalīšanas un kartes uzdevuma izveides pārvaldīšanas pārslodze sāk dominēt kopējā darba izpildes laikā.
  • Lielākajai daļai darbu ir labāk izveidot sadalījuma lielumu, kas vienāds ar HDFS bloka lielumu (kas pēc noklusējuma ir 64 MB).
  • Kartes uzdevumu izpildes rezultātā produkcija tiek ierakstīta vietējā diskā attiecīgajā mezglā, nevis HDFS.
  • Iemesls vietējā diska izvēlei, nevis HDFS, ir tas, lai izvairītos no replikācijas, kas notiek HDFS veikala darbības gadījumā.
  • Kartes izeja ir starpposma izeja, kuru apstrādā ar samazināšanas uzdevumiem, lai iegūtu galīgo rezultātu.
  • Kad darbs ir pabeigts, kartes izvadi var izmest. Tātad, tā uzglabāšana HDFS ar replikāciju kļūst pārmērīga.
  • Mezgla kļūmes gadījumā, pirms kartes izvadi patērē uzdevums samazināt, Hadoop atkārtoti izpilda kartes uzdevumu citā mezglā un no jauna izveido kartes izvadi.
  • Samazināt uzdevumu nedarbojas ar datu lokalizācijas jēdzienu. Katra kartes uzdevuma izvads tiek ievadīts uzdevumam samazināt. Kartes izvade tiek pārsūtīta uz mašīnu, kurā darbojas samazināšanas uzdevums.
  • Šajā mašīnā izeja tiek apvienota un pēc tam nodota lietotāja definētajai samazināšanas funkcijai.
  • Atšķirībā no kartes izejas, samazināta izeja tiek saglabāta HDFS (pirmā kopija tiek glabāta vietējā mezglā, bet citas kopijas tiek glabātas ārpus plaukta esošajos mezglos). Tātad, rakstot samazināt izvadi

Kā MapReduce organizē darbu?

Tagad šajā MapReduce apmācībā mēs uzzināsim, kā darbojas MapReduce

Hadoops darbu sadala uzdevumos. Ir divu veidu uzdevumi:

  1. Kartes uzdevumi (sadalīšana un kartēšana)
  2. Samazināt uzdevumus (sajaukšana, samazināšana)

kā iepriekš minēts.

Pilnīgu izpildes procesu (gan Map, gan Reduce uzdevumu izpildi) kontrolē divu veidu entītijas, ko sauc par a

  1. Darba meklētājs : darbojas kā kapteinis (atbildīgs par pilnīgu iesniegtā darba izpildi)
  2. Vairāki uzdevumu izsekotāji : darbojas kā vergi, katrs no viņiem veicot darbu

Katram darbam, kas iesniegts izpildei sistēmā, ir viens Jobtracker, kas dzīvo Namenode, un ir vairāki uzdevumu meklētāji, kas dzīvo Datanode .

Kā darbojas Hadoop MapReduce
  • Darbs ir sadalīts vairākos uzdevumos, kas pēc tam tiek palaisti uz vairākiem datu mezgliem kopā.
  • Darba izsekotāja pienākums ir koordinēt darbību, ieplānojot uzdevumu izpildi dažādos datu mezglos.
  • Atsevišķa uzdevuma izpilde ir jāuzrauga uzdevumu izsekotājam, kas atrodas uz katra datu mezgla, kurš izpilda darba daļu.
  • Uzdevumu izsekotāja pienākums ir nosūtīt progresa ziņojumu darba izsekotājam.
  • Turklāt uzdevumu izsekotājs periodiski nosūta “sirdsdarbības” signālu Jobtracker, lai informētu viņu par sistēmas pašreizējo stāvokli.
  • Tādējādi darba izsekotājs seko līdzi katra darba kopējam progresam. Uzdevuma neveiksmes gadījumā darba izsekotājs to var pārcelt uz citu uzdevumu izsekotāju.