Mapa Side Pripojte sa vs. Pripojte sa



Tento príspevok pojednáva o vedľajšej mape Hadoop Map vs. pripojiť sa. Dozviete sa tiež, čo je zmenšenie mapy, pripojenie tabuľky, pripojenie strany, výhody používania operácie spojenia na strane mapy v úli

V tomto blogu budeme diskutovať o Pripojte sa na stranu mapy a jeho výhody oproti bežnej operácii pripojenia v Úľ .Toto je dôležitý koncept, ktorý sa budete musieť naučiť implementovať .Ale predtým, ako sa o tom dozvieme, mali by sme najskôr pochopiť koncept „Pripojiť sa“ a čo sa deje vnútorne, keď vykonáme spojenie Úľ .

ako písať metódu tostring v jave -

Pripojte sa je klauzula, ktorá kombinuje záznamy dvoch tabuliek (alebo množín údajov).
Predpokladajme, že máme dve tabuľky A a B. Keď na nich vykonáme operáciu spojenia, vráti záznamy, ktoré sú kombináciou všetkých stĺpcov f a B.





Teraz si ukážeme funkčnosť normálneho spojenia.

Kedykoľvek použijeme operáciu spojenia, úloha bude priradená k úlohe Zmenšiť mapu, ktorá sa skladá z dvoch fáz - a „Fáza mapy „A„ Znížte stupeň “. Úlohou mapovača počas fázy Map Map je 'čítať' údaje zo spojovacích tabuliek a do „Návrat“ the „Spojovací kľúč“ a „Spojiť hodnotu“ spárovať do sprostredkujúceho súboru. Ďalej, vo fáze zámeny, je tento medzistupeň potom zoradený a zlúčený. Úlohou reduktora počas fázy redukcie je brať tento triedený výsledok ako vstup a dokončiť úlohu spojenia.



  • Spojenie na strane mapy je podobné spojeniu, ale všetky úlohy vykoná sám mapovač.

  • Spojenie na strane mapy bude väčšinou vhodné pre malé tabuľky na optimalizáciu úlohy.



Ako sa optimalizuje úloha na strane mapy?

Predpokladajme, že máme dva stoly, z ktorých jeden je malý. Keď zadáme úlohu zmenšenia mapy, vytvorí sa pred pôvodnou spojenou úlohou zníženia mapy lokálna úloha Map Reduce, ktorá načíta údaje malej tabuľky z HDFS a uloží ich do hašovacej tabuľky v pamäti. Po prečítaní serializuje hašovaciu tabuľku v pamäti do súboru hash tabuľky.

V ďalšej fáze keď je spustená pôvodná úloha Map Reduce spojenia, presunie údaje v súbore hash tabuľky do distribuovanej medzipamäte Hadoop, ktorá tieto súbory naplní na lokálny disk každého mapovača. Takže všetci mapovatelia môžu načítať tento pretrvávajúci súbor tabuľky hash späť do pamäte a vykonať prácu spojenia ako predtým. Tok vykonania optimalizovaného spojenia mapy je zobrazený na obrázku nižšie. Po optimalizácii je potrebné malú tabuľku prečítať iba raz. Ak je na rovnakom stroji spustených aj viac mapovačov, je potrebné, aby distribuovaná vyrovnávacia pamäť natlačila do tohto stroja iba jednu kópiu súboru tabuľky hash.

Výhody použitia spojenia na strane mapy:

  • Spojenie na strane mapy pomáha minimalizovať náklady, ktoré vznikajú pri triedení a zlúčení v zamiešať a zmenšiť etapy.
  • Spojenie na mape tiež pomáha pri zlepšovaní výkonu úlohy znížením času potrebného na dokončenie úlohy.

Nevýhody spojenia na strane mapy:

  • Spojenie na strane mapy je postačujúce, iba ak je jedna z tabuliek, na ktorých vykonávate operáciu spojenia na strane mapy, dostatočne malá na to, aby sa zmestila do pamäte. Preto nie je vhodné vykonávať spojenia na strane mapy na tabuľkách, ktoré sú v oboch obrovské údaje.

Jednoduchý príklad pre pripojenie na zmenšenie mapy:

Vytvorme dve tabuľky:

  • Emp : obsahuje podrobnosti o zamestnancovi, napríklad meno zamestnanca, ID zamestnanca a oddelenie, do ktorého patrí.

  • Dlh: obsahuje podrobnosti ako Názov oddelenia, ID oddelenia a podobne.

Vytvorte dva vstupné súbory, ako je znázornené na nasledujúcom obrázku, aby sa údaje načítali do vytvorených tabuliek.

zamestnanec.txt

odd.txt

Načítajme teraz údaje do tabuliek.

rozdiel medzi agilným a devops

Vykonajme Strana mapy Pripojte sa na dvoch tabuľkách extrahovať zoznam oddelení, v ktorých každý zamestnanec pracuje.

Tu je odd. druhého stola je malý stolík. Pamätajte, že počet oddelení bude vždy nižší ako počet zamestnancov v organizácii.

Teraz urobme tú istú úlohu pomocou normálneho spojenia Reduce-side.

Pri vykonávaní oboch spojení môžete nájsť dva rozdiely:

  • Spojenie so zmenšením mapy dokončilo prácu za kratší čas v porovnaní s časom potrebným pri bežnom pripojení.

  • Pripojenie Map-zmenšiť dokončilo svoju prácu bez pomoci akéhokoľvek reduktora, zatiaľ čo bežné spojenie vykonalo túto prácu pomocou jedného reduktora.

Teda Pripojte sa na stranu mapy je vaše najlepšie riešenie, keď je jeden z tabuliek dostatočne malý na to, aby sa zmestil do pamäte, aby dokončil prácu v krátkom čase.

V Real-time prostredie , budete mať súbory údajov s veľkým množstvom údajov. Vykonanie analýzy a načítanie údajov bude teda časovo náročné, ak bude mať jeden zo súborov dát menšiu veľkosť. V takých prípadoch Pripojte sa na stranu mapy pomôže dokončiť prácu za kratší čas.

Na zvládnutie Hadoopu nikdy nebol lepší čas! Začnite teraz so špeciálne upraveným kurzom Big Data a Hadoop od spoločnosti Edureka.

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

Súvisiace príspevky:

Sedem spôsobov, ako školenie veľkých dát zmeniť vašu organizáciu

apache spark vs hadoop mapreduce