Žemėlapio pusė Prisijunkite prie Vs. Prisijunkite



Šiame įraše aptariama „Hadoop Map“ pusės prisijungimo prie Vs. prisijungti. Taip pat sužinokite, kas yra žemėlapio sumažinimas, prisijungimas prie stalo, prisijungimo pusė, žemėlapio pusės sujungimo operacijos avilyje pranašumai

Šiame tinklaraštyje aptarsime apie Žemėlapio pusės jungtis ir jo pranašumai, palyginti su įprasta jungtimi Avilys .Tai yra svarbi sąvoka, kurią turėsite išmokti įgyvendinti .Tačiau prieš žinodami apie tai, pirmiausia turėtume suprasti „ „Prisijunk“ ir kas vyksta viduje, kai atliekame prisijungimą Avilys .

Prisijunkite yra sąlyga, sujungianti dviejų lentelių (arba duomenų rinkinių) įrašus.
Tarkime, kad turime dvi lenteles A ir B. Kai atliksime jungtinę operaciją, ji grąžins įrašus, kurie yra visų o f A ir B stulpelių derinys.





Dabar supraskime įprasto prisijungimo funkcionalumą su pavyzdžiu.

Kai taikysime prisijungimo operaciją, užduotis bus paskirta „Map Reduce“ užduočiai, kurią sudaro du etapai: a ‘Žemėlapio scena Ir „ Sumažinkite etapą “. Žemėlapio kūrėjo darbas žemėlapio etape yra: „Skaityti“ duomenis iš sujungimo lentelių ir į „Grįžti“ „Prisijungimo raktas“ ir „Prisijungti vertė“ suporuoti į tarpinį failą. Maišymo etape šis tarpinis failas yra rūšiuojamas ir sujungiamas. Reduktoriaus užduotis redukcijos etape yra atsižvelgti į šį surūšiuotą rezultatą ir atlikti prisijungimo užduotį.



  • Žemėlapio pusės sujungimas yra panašus į sujungimą, tačiau visas užduotis žemėlapio atlikėjas atliks vienas.

  • „Map-side Join“ labiausiai tiks mažoms lentelėms, kad optimizuotų užduotį.



Kaip optimizuoti užduotį prisijungs prie žemėlapio pusės?

Tarkime, kad mes turime dvi lenteles, iš kurių viena yra maža lentelė. Kai pateiksime žemėlapio mažinimo užduotį, bus sukurta „Map Reduce“ vietinė užduotis prieš pradinę prisijungimo užduotį „Map Reduce“, kuri nuskaitys mažos lentelės duomenis iš HDFS ir išsaugos juos atminties maišos lentelėje. Perskaičius atmintyje esančią maišos lentelę suporuoja į maišos lentelės failą.

Kitame etape kai vykdoma pradinė prisijungimo „Map Reduce“ užduotis, ji maišos lentelės faile esančius duomenis perkelia į „Hadoop“ paskirstytą talpyklą, kuri šiuos failus užpildo kiekvieno žemėlapio kūrėjo vietiniame diske. Taigi visi kartografai gali įkelti šį nuolatinį maišos lentelės failą atgal į atmintį ir atlikti sujungimo darbus kaip ir anksčiau. Optimizuoto žemėlapio sujungimo vykdymo eiga parodyta paveikslėlyje žemiau. Po optimizavimo mažą lentelę reikia perskaityti tik vieną kartą. Taip pat, jei tame pačiame kompiuteryje veikia keli kartotuvai, paskirstytoji talpykla turi į kompiuterį perkelti tik vieną maišos lentelės failo kopiją.

atviro tipo liejimas java

Žemėlapio pusės jungties naudojimo pranašumai:

  • Žemėlapio pusės sujungimas padeda sumažinti išlaidas, patirtas rūšiuojant ir sujungiant maišyti ir sumažinti etapai.
  • Žemėlapio sujungimas taip pat padeda pagerinti užduoties atlikimą, nes sutrumpėja užduoties atlikimo laikas.

Žemėlapio pusės sujungimo trūkumai:

  • Žemėlapio pusės sujungimas yra tinkamas tik tada, kai viena iš lentelių, kurioje atliekate sujungimą žemėlapio pusėje, yra pakankamai maža, kad tilptų į atmintį. Todėl netinka atlikti žemėlapio sujungimą su lentelėmis, kurios yra milžiniškos abiejų duomenų.

Paprastas žemėlapių sumažinimo prisijungimų pavyzdys:

Sukurkime dvi lenteles:

  • Emp : yra išsami informacija apie darbuotoją, pvz., darbuotojo vardas, pavardė, darbuotojo ID ir skyrius, kuriam ji priklauso.

  • Departamentas: yra išsami informacija, pvz., skyriaus pavadinimas, skyriaus ID ir pan.

Norėdami įkelti duomenis į sukurtas lenteles, sukurkite du įvesties failus, kaip parodyta kitame paveikslėlyje.

darbuotojas.txt

dept.txt

Dabar įkelkime duomenis į lenteles.

Leiskite mums atlikti Žemėlapio pusė Prisijunkite ant dviejų lentelių išrašyti skyrių, kuriuose dirba kiekvienas darbuotojas, sąrašą.

Čia, antrojo stalo skyrius yra nedidelis staliukas. Atminkite, kad skyrių skaičius visada bus mažesnis nei darbuotojų organizacijoje.

java skirtumas tarp pratęsimų ir padargų

Dabar atlikime tą pačią užduotį naudodami įprastą „Reduce-side“ sujungimą.

Vykdydami abu sujungimus galite rasti du skirtumus:

  • Žemėlapio sumažinimo prisijungimas užbaigė darbą per trumpesnį laiką, palyginti su įprastu prisijungimu.

  • „Map-reduc“ prisijungimas baigė darbą be jokio reduktoriaus pagalbos, o įprastas prisijungimas šį darbą atliko vieno reduktoriaus pagalba.

Taigi, Žemėlapio pusėje prisijungti yra geriausias pasirinkimas, kai viena iš lentelių yra pakankamai maža, kad tilptų į atmintį, kad darbas būtų atliktas per trumpą laiką.

Į Realaus laiko aplinka , turėsite duomenų rinkinius su didžiuliu duomenų kiekiu. Taigi, norint atlikti analizę ir gauti duomenis, užtruks daug laiko, jei vienas iš duomenų rinkinių yra mažesnio dydžio. Tokiais atvejais Žemėlapio pusės jungtis padės greičiau atlikti darbą.

Niekada nebuvo geresnio laiko įvaldyti Hadoopą! Pradėkite nuo „Edureka“ specialiai kuruotų „Big Data“ ir „Hadoop“ kursų.

kaip pradėti aws cli

Nuorodos:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

Susijusios žinutės:

7 būdai, kaip „Big Data“ mokymai gali pakeisti jūsų organizaciją