Unió lateral del mapa vs. Uneix-te



En aquest post es parla d'unir-se al mapa d'Hadoop vs. unir-se. Apreneu també què és reduir el mapa, unir la taula, unir el costat, avantatges d'utilitzar l'operació d'unió al mapa a Hive

En aquest bloc, en parlarem Unió lateral del mapa i els seus avantatges respecte a l'operació d'unió normal a Rusc .Aquest és un concepte important que haureu d'aprendre a implementar .Però abans de conèixer-ho, primer hauríem d’entendre el concepte de 'Uneix-te' i què passa internament quan realitzem la incorporació Rusc .

Uneix-te és una clàusula que combina els registres de dues taules (o conjunts de dades).
Suposem que tenim dues taules A i B. Quan els fem una operació de combinació, retornarà els registres que són la combinació de totes les columnes de A i B.





Ara entenem la funcionalitat de la unió normal amb un exemple.

Sempre que apliquem l'operació d'unió, el treball s'assignarà a una tasca Reduir mapa que consta de dues etapes: a ‘Etapa del mapa I un Reduir l’etapa ’. La feina d’un mapista durant la fase de mapes ho és 'Llegir' les dades de les taules de combinació i de 'Tornar' el 'Clau d'unió' i 'Valor d'unió' parell en un fitxer intermedi. A més, a l'etapa de barreja, aquest fitxer intermedi s'ordena i es fusiona. La feina del reductor durant la fase de reducció consisteix a prendre aquest resultat ordenat com a entrada i completar la tasca d’unió.



  • Unir-se al costat del mapa és similar a unir-se, però tota la tasca la realitzarà només el mapeador.

  • La unió al mapa serà especialment adequada per a taules petites per optimitzar la tasca.



Com s’unirà la banda del mapa per optimitzar la tasca?

Suposem que tenim dues taules de les quals una d’elles és una taula petita. Quan enviem una tasca de reducció de mapes, es crearà una tasca local de Reducció de mapes abans de la tasca original d’unió a Map Reduce, que llegirà les dades de la taula petita de HDFS i les emmagatzemarà en una taula de hash a la memòria. Després de llegir, serialitza la taula de hash de la memòria en un fitxer de taula de hash.

En la següent etapa, quan s’executa la tasca original de reducció de mapa d’unió, mou les dades del fitxer de la taula de hash a la memòria cau distribuïda de Hadoop, que omple aquests fitxers al disc local de cada mapejador. Així, tots els mapers poden carregar aquest fitxer de taula de hash persistent a la memòria i fer el treball d’unió com abans. El flux d'execució de la combinació de mapes optimitzada es mostra a la figura següent. Després de l'optimització, cal llegir la taula petita només una vegada. A més, si s’executen diversos mapers a la mateixa màquina, la memòria cau distribuïda només ha d’enviar una còpia del fitxer de taula de hash a aquesta màquina.

Avantatges d'utilitzar la combinació lateral del mapa:

  • La combinació del mapa del mapa ajuda a minimitzar el cost que suposa l’ordenació i la fusió a remenar i reduir etapes.
  • La combinació al costat del mapa també ajuda a millorar el rendiment de la tasca reduint el temps per acabar la tasca.

Desavantatges de la unió al mapa:

  • La unió lateral del mapa només és adequada quan una de les taules en què realitzeu l'operació d'unió lateral del mapa és prou petita com per encabir-la a la memòria. Per tant, no és adequat realitzar unions al mapa a les taules, que són dades enormes en totes dues.

Exemple senzill d'ajuntaments reduïts al mapa:

Creem dues taules:

  • Emp : conté detalls d’un empleat, com ara el nom de l’empleat, la identificació de l’empleat i el departament al qual pertany.

php converteix matriu a objecte
  • Departament: conté detalls com el nom del departament, la identificació del departament, etc.

Creeu dos fitxers d'entrada tal com es mostra a la imatge següent per carregar les dades a les taules creades.

empleat.txt

dept.txt

Ara, carregem les dades a les taules.

Realitzem el Mapa del costat Uneix-te a les dues taules per extreure la llista de departaments en què treballa cada empleat.

Aquí, el segon departament de la taula és una taula petita. Recordeu que sempre el nombre de departaments serà inferior al nombre d’empleats d’una organització.

Ara realitzem la mateixa tasca amb l'ajut de la combinació normal Reducció lateral.

Mentre executeu les dues combinacions, podeu trobar les dues diferències:

  • Map-reduce join ha completat la feina en menys temps en comparació amb el temps que ha passat a la unió normal.

  • Map-reduce join ha completat el seu treball sense l'ajut de cap reductor, mentre que el join normal ha executat aquest treball amb l'ajut d'un reductor.

Per tant, Unió al mapa és la vostra millor aposta quan una de les taules és prou petita per contenir la memòria per completar la feina en un curt període de temps.

En Entorn en temps real , tindreu conjunts de dades amb una gran quantitat de dades. Per tant, realitzar anàlisis i recuperar les dades requerirà molt de temps si un dels conjunts de dades és de mida més petita. En aquests casos Unió al costat del mapa ajudarà a completar la feina en menys temps.

Mai no hi ha hagut un moment millor per dominar Hadoop. Comenceu ara amb el curs de Big Data i Hadoop especialment curat per Edureka.

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

Articles Relacionats:

La formació en dades de 7 maneres pot canviar la vostra organització