Kaardipoolne liitumine Vs. Liitu



Selles postituses arutatakse Hadoopi kaardi poolset liitumist Vs. liituma. Samuti saate teada, mida tähendab kaardi vähendamine, tabeliga liitumine, liitumise külg, taru kaardipoolse liitmise operatsiooni kasutamise eelised

Selles blogis arutleme teemal Kaardipoolne liitumine ja selle eelised tavalise liitumisoperatsiooni ees Taru .See on oluline mõiste, mille peate oma rakendamiseks õppima .Kuid enne kui sellest teada saame, peaksime kõigepealt mõistma mõiste ‘Liitu’ ja mis toimub sisemiselt, kui ühendame Taru .

Liitu on klausel, mis ühendab kahe tabeli (või andmekogumi) kirjed.
Oletame, et meil on kaks tabelit A ja B. Kui ühendame need liitumisoperatsiooniga, tagastab see kirjed, mis on kõigi veergude o f A ja B kombinatsioon.





Nüüd andke meile näite abil tavalise liitumise funktsionaalsus.

Alati, kui rakendame liitumisoperatsiooni, määratakse töö Map Reduce ülesandele, mis koosneb kahest etapist - a ‘Kaardietapp Ja a Vähendage etappi ’. Kaardistaja ülesanne kaardietapi ajal on 'Loe' liidetabelitest saadud andmed 'Tagasi' ‘Liitumisklahv’ ja 'Liitumisväärtus' siduda vahefailiks. Edasi segamise etapis see vahefail sorteeritakse ja liidetakse. Reduktori ülesanne reduktsioonietapil on võtta see sorteeritud tulemus sisendina ja täita liitumisülesanne.



  • Kaardipoolne liitumine sarnaneb liitumisega, kuid kogu ülesande täidab kaardistaja üksi.

  • Kaardipoolne liitumine sobib ülesande optimeerimiseks enamasti väikeste laudade jaoks.



Kuidas kaardipoolne liitumine ülesannet optimeerib?

Oletame, et meil on kaks tabelit, millest üks on väike laud. Kui esitame kaardi vähendamise ülesande, luuakse enne algset liitumist Map Reduce ülesandega Map Reduce kohalik ülesanne, mis loeb HDFS-ist väikese tabeli andmeid ja salvestab need mälus olevasse räsitabelisse. Pärast lugemist järjestab see mälus oleva räsitabeli räsitabeli failiks.

Järgmises etapis kui algne liitumisfunktsioon Map Reduce töötab, teisaldab see räsitabeli failis olevad andmed hajutatud Hadoopi vahemällu, mis täidab need failid iga kaardistaja kohalikule kettale. Nii et kõik kaardistajad saavad selle püsiva räsitabeli faili mällu tagasi laadida ja ühendamistööd teha nagu varem. Optimeeritud kaardiühenduse teostusvoo on näidatud alloleval joonisel. Pärast optimeerimist tuleb väikest tabelit lugeda vaid üks kord. Samuti, kui samas masinas töötab mitu kaardistajat, peab hajutatud vahemälu selle masinasse saatma vaid ühe räsitabeli faili koopia.

Kaardipoolse ühendamise kasutamise eelised:

  • Kaardipoolne liitmine aitab minimeerida kulusid, mis tekivad grupi sortimisel ja ühendamisel segama ja vähendada etapid.
  • Kaardipoolne liitumine aitab ka ülesande täitmist parandada, vähendades ülesande lõpuleviimise aega.

Kaardipoolse ühendamise puudused:

  • Kaardipoolne ühendamine on piisav ainult siis, kui üks tabelitest, millel kaardipoolse ühendamise operatsiooni teete, on piisavalt väike, et see mällu mahuks. Seetõttu ei sobi tabelite kaardipoolne ühendamine, mis on mõlemas tohutu teave.

Lihtne näide liitmike vähendamise kaardist:

Loogem kaks tabelit:

  • Emp : sisaldab töötaja üksikasju, näiteks töötaja nimi, töötaja ID ja osakond, kuhu ta kuulub.

  • Osakond: sisaldab üksikasju, nagu osakonna nimi, osakonna ID ja nii edasi.

Andmete loomiseks loodud tabelitesse saate luua kaks sisendfaili, nagu on näidatud järgmisel pildil.

töötaja.txt

kuhjata ja laduda mälu Java-sse

osakond.txt

Nüüd laadime andmed tabelitesse.

Laske meil täita Kaardipoolne Liitu kahel tabelil osakondade loetelu väljavõtmiseks, kus iga töötaja töötab.

Siin, teise laua osakond on väike laud. Pidage meeles, et alati on osakonna arv väiksem kui organisatsiooni töötajate arv.

luua objektide massiiv

Nüüd täidame sama ülesande tavalise reduktsioonipoolse ühendamise abil.

Mõlema ühendamise käivitamisel leiate kaks erinevust:

  • Kaardiga vähendatud liitumine on töö viinud lõpule vähem kui tavalise liitumise ajaga.

  • Map-reduc liitumine on oma töö lõpetanud ilma ühegi reduktori abita, samas kui tavaline liitumine täidab selle töö ühe reduktori abil.

Seega Kaardipoolne liitumine on teie parim panus, kui üks tabelitest on piisavalt väike, et mahtuda mällu, et töö lühikese aja jooksul lõpule viia.

Sisse Reaalajas keskkond , teil on tohutu hulga andmetega andmekogumid. Seega on analüüsi teostamine ja andmete hankimine aeganõudev, kui üks andmekogumitest on väiksema suurusega. Sellistel juhtudel Kaardipoolne liitumine aitab töö lühema ajaga lõpule viia.

Hadoopi valdamiseks pole kunagi varem olnud paremat aega! Alustage kohe spetsiaalselt kureeritud Edureka Big Data ja Hadoopi kursusega.

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

Seonduvad postitused:

7 viisi, kuidas Big Data koolitus võib teie organisatsiooni muuta