Ebben a blogban a következőkről fogunk beszélgetni Térképoldali csatlakozás és előnyei a szokásos illesztési művelettel szemben Kaptár .Ez egy fontos koncepció, amelyet meg kell tanulnia a koncepció megvalósításához .De mielőtt tudnánk erről, először meg kell értenünk a fogalmát 'Csatlakozik' és mi történik belsőleg, amikor végrehajtjuk a csatlakozást Kaptár .
Csatlakozik egy olyan záradék, amely két tábla (vagy adatkészlet) rekordjait egyesíti.
Tegyük fel, hogy két A és B táblázatunk van. Ha összekapcsolási műveletet hajtunk végre rajtuk, akkor az az o f A és B oszlop kombinációját képező rekordokat adja vissza.
Most pedig értsük meg egy példával a normál csatlakozás működését.
Amikor alkalmazzuk a csatlakozási műveletet, a feladat egy Térképcsökkentés feladathoz lesz rendelve, amely két szakaszból áll: a ’Térkép színpad És egy „ Csökkentse a színpadot ’. A térképkészítő feladata a Map Stage alatt: 'olvas' az adatok a csatlakozási táblákból és a 'Visszatérés' az „Csatlakozási kulcs” és „Csatlakozási érték” párosítson egy köztes fájlba. Ezután a keverési szakaszban ez a köztes fájl rendezésre és egyesítésre kerül. A reduktor feladata a redukciós szakaszban az, hogy ezt a rendezett eredményt bevitelként használja, és elvégezze a csatlakozás feladatát.
A térképoldali csatlakozás hasonlít a csatlakozáshoz, de az összes feladatot a térképkészítő végzi egyedül.
A Map-side Join leginkább kis asztalok számára lesz alkalmas a feladat optimalizálására.
Hogyan optimalizálja a feladatot a térképoldali csatlakozás?
Tegyük fel, hogy két asztalunk van, amelyek közül az egyik egy kis asztal. Amikor beküldünk egy térképcsökkentő feladatot, akkor az eredeti csatlakozással a Map Reduce feladat előtt létrejön egy Map Reduce helyi feladat, amely beolvassa a kis tábla adatait a HDFS-ből, és egy memória-hash táblába tárolja. Olvasás után sorosítja a memóriában levő hash táblázatot hash tábla fájlba.
a gépi tanulás elsajátításának előfeltételei
A következő szakaszban amikor az eredeti csatlakozás Map Reduce feladat fut, a hash tábla fájlban lévő adatokat a Hadoop elosztott gyorsítótárba helyezi át, amely ezeket a fájlokat minden egyes térképkészítő helyi lemezére feltölti. Tehát az összes leképező visszatöltheti ezt az állandó hash tábla fájlt a memóriába, és elvégezheti a csatlakozási munkát, mint korábban. Az optimalizált térképcsatlakozás végrehajtási folyamatát az alábbi ábra mutatja. Optimalizálás után a kis táblázatot csak egyszer kell elolvasni. Akkor is, ha több leképező fut ugyanazon a gépen, az elosztott gyorsítótárnak csak a hash tábla fájl egy példányát kell a gépre tolnia.
A térképoldali csatlakozás előnyei:
- A térképoldali összekapcsolás segít minimalizálni azokat a költségeket, amelyek a rendezéshez és az egyesítéshez kapcsolódnak keverés és csökkenteni szakasz.
- A térképoldali csatlakozás a feladat teljesítésének javításában is segít a feladat befejezéséhez szükséges idő csökkentésével.
A térképoldali csatlakozás hátrányai:
- A térképoldali illesztés csak akkor megfelelő, ha az egyik tábla, amelyen a térképoldali összekapcsolási műveletet hajtja végre, elég kicsi ahhoz, hogy elférjen a memóriában. Ezért nem alkalmas térképoldali összekapcsolás végrehajtására azokon a táblákon, amelyek mindkettőjükben óriási adatok.
Egyszerű példa a térképcsökkentési csatlakozásokra:
Hozzunk létre két táblázatot:
- Emp : tartalmazza az alkalmazottak adatait, például a munkavállaló nevét, a munkavállalói azonosítót és az osztályt, amelyhez tartozik.
- Adósság: tartalmazza az olyan részleteket, mint az osztály neve, osztály azonosítója és így tovább.
Hozzon létre két bemeneti fájlt a következő képen látható módon az adatok betöltéséhez a létrehozott táblákba.
alkalmazott.txt
oszt. txt
Most töltsük be az adatokat a táblákba.
hogyan kell használni a trim-et java-ban
Hajtsuk végre a Térkép-oldal Csatlakozik a két táblán, hogy kivonja az osztályok listáját, ahol minden alkalmazott dolgozik.
Itt a második asztal oszt egy kis asztal. Ne feledje, hogy az osztályok száma mindig kevesebb lesz, mint a szervezet alkalmazottainak száma.
Most végezzük el ugyanazt a feladatot a normál Reduce-side csatlakozás segítségével.
Mindkét összekapcsolás végrehajtása során megtalálhatja a két különbséget:
keresztböngésző tesztelés szelén web meghajtóban
A térképcsökkentő csatlakozás rövidebb idő alatt elvégezte a munkát, összehasonlítva a normál csatlakozáshoz szükséges idővel.
A Map-reduc csatlakozás minden reduktor segítsége nélkül elvégezte a feladatát, míg a normál join egy reduktor segítségével hajtotta végre ezt a feladatot.
Ennélfogva, Térképoldali csatlakozás a legjobb fogadás, amikor az egyik asztal elég kicsi ahhoz, hogy elférjen a memóriában, hogy rövid időn belül elvégezhesse a munkát.
Ban ben Valós idejű környezet , hatalmas mennyiségű adattal lesznek adatkészletei. Tehát az elemzés és az adatok visszakeresése időigényes lesz, ha az egyik adatkészlet kisebb méretű. Ilyen esetekben Térképoldali csatlakozás segít rövidebb idő alatt elvégezni a munkát.
Még soha nem volt jobb idő Hadoop elsajátítására! Kezdje el most az Edureka speciálisan kurált Big Data és Hadoop tanfolyamával.
Referenciák:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919
Kapcsolódó hozzászólások:
A Big Data képzés 7 módon változtathatja meg szervezetét