Kartes sānu pievienošanās Vs. Pievienojieties



Šajā ziņojumā ir apspriests Hadoop kartes sānu pievienošanās Vs. pievienoties. Uzziniet arī to, kas ir kartes samazināšana, pievienošanās galdam, pievienošanās puse, priekšrocības, kas saistītas ar kartes puses savienojuma darbības izmantošanu stropā

Šajā emuārā mēs apspriedīsim Kartes pusē pievienoties un tās priekšrocības salīdzinājumā ar parasto savienojuma darbību Stropu .Šī ir svarīga koncepcija, kas jums būs jāiemācās, lai to ieviestu .Bet pirms uzzināt par to, mums vispirms vajadzētu saprast jēdzienu ‘Pievienoties’ un kas notiek iekšēji, kad veicam pievienošanos Stropu .

Pievienojieties ir klauzula, kas apvieno divu tabulu (vai datu kopu) ierakstus.
Pieņemsim, ka mums ir divas tabulas A un B. Kad mēs veicam savienošanas darbību ar tām, tā atgriezīs ierakstus, kas ir visu o f A un B kolonnu kombinācija.





Tagad ļaujiet mums saprast piemēru parasto savienojumu funkcionalitātei.

Ikreiz, kad mēs izmantojam pievienošanās darbību, darbs tiks piešķirts uzdevumam Kartes samazināšana, kas sastāv no diviem posmiem - a ‘Kartes posms Un a Samazināt posmu ”. Kartētāja darbs kartes posmā ir: “Lasīt” datus no pievienošanās tabulām un uz “Atgriešanās” ‘Pievienošanās atslēga’ un ‘Pievienoties vērtība’ savienot pārī starpfailā. Jaukšanas stadijā šis starpfails tiek kārtots un apvienots. Reduktora uzdevums reducēšanas posmā ir izmantot šo sakārtoto rezultātu kā ieguldījumu un izpildīt pievienošanās uzdevumu.



  • Pievienošanās kartes pusē ir līdzīga savienojumam, taču visus uzdevumus kartētājs veiks tikai pats.

  • Map-side Join lielākoties būs piemērots maziem galdiņiem, lai optimizētu uzdevumu.



Kā savienojums kartes pusē optimizēs uzdevumu?

Pieņemsim, ka mums ir divas tabulas, no kurām viena ir maza. Kad mēs iesniegsim kartes samazināšanas uzdevumu, pirms sākotnējā pievienošanās uzdevuma Kartes samazināšana tiks izveidots kartes samazināšanas vietējais uzdevums, kas nolasīs mazās tabulas datus no HDFS un saglabās tos atmiņas jaukšanas tabulā. Pēc izlasīšanas atmiņā ievietotā jaukšanas tabula tiek sērijveidota jaukšanas tabulas failā.

Nākamajā posmā kad darbojas sākotnējais pievienošanās Map Reduce uzdevums, tas hash tabulas failā pārvieto datus uz Hadoop izplatīto kešatmiņu, kas šos failus aizpilda katra kartētāja vietējā diskā. Tātad visi kartētāji var ielādēt šo neatlaidīgo hash tabulas failu atpakaļ atmiņā un veikt savienošanas darbu tāpat kā iepriekš. Optimizētās kartes savienojuma izpildes plūsma ir parādīta zemāk redzamajā attēlā. Pēc optimizācijas mazā tabula ir jāizlasa tikai vienu reizi. Arī tad, ja vienā un tajā pašā mašīnā darbojas vairāki kartētāji, izplatītajai kešatmiņai šajā mašīnā jānospiež tikai viena jaukšanas tabulas faila kopija.

Kartes sānu savienojuma izmantošanas priekšrocības:

  • Savienojums no kartes puses palīdz samazināt izmaksas, kas rodas, šķirojot un apvienojot sajaukt un samazināt posmos.
  • Savienojums no kartes puses palīdz arī uzlabot uzdevuma izpildi, samazinot uzdevuma izpildes laiku.

Kartes puses savienojuma trūkumi:

  • Kartes savienojums ir piemērots tikai tad, ja viena no tabulām, uz kuras veicat kartes savienojuma darbību, ir pietiekami maza, lai ietilptu atmiņā. Tāpēc nav piemēroti veikt tabulas savienojumu tabulās, kas abos ir milzīgi dati.

Vienkāršs piemērs kartes samazināšanas savienojumiem:

Izveidosim divas tabulas:

  • Emp : satur informāciju par darbinieku, piemēram, darbinieka vārdu, darbinieka ID un nodaļu, kurai viņa pieder.

  • Dziļums: satur detalizētu informāciju, piemēram, nodaļas nosaukumu, nodaļas ID un tā tālāk.

Izveidojiet divus ievades failus, kā parādīts nākamajā attēlā, lai datus ielādētu izveidotajās tabulās.

darbinieks.txt

dept.txt

Tagad ielādēsim datus tabulās.

pojo klase java ar piemēru

Ļaujiet mums veikt Kartes puse Pievienojieties uz divām tabulām, lai iegūtu to nodaļu sarakstu, kurās strādā katrs darbinieks.

Lūk, otrā galda nod ir mazs galds. Atcerieties, ka vienmēr nodaļu skaits būs mazāks nekā darbinieku skaits organizācijā.

Tagad veiksim to pašu uzdevumu, izmantojot parasto reduktora savienojuma palīdzību.

Izpildot abus savienojumus, varat atrast divas atšķirības:

  • Pievienošanās ar karti samazināt ir pabeigusi darbu īsākā laikā, salīdzinot ar laiku, kas nepieciešams parastai pievienošanai.

  • Map-samazināt savienojums ir pabeidzis darbu bez jebkāda reduktora palīdzības, turpretī parastā pievienošanās šo darbu izpildīja ar viena reduktora palīdzību.

Tādējādi Pievienojieties kartes pusē ir jūsu labākais solījums, ja viena no tabulām ir pietiekami maza, lai ietilptu atmiņā, lai veiktu darbu īsā laika posmā.

In Reālā laika vide , jums būs datu kopas ar milzīgu datu daudzumu. Tātad, ja viena no datu kopām ir mazāka izmēra, analīzes veikšana un datu iegūšana prasīs daudz laika. Tādos gadījumos Pievienojieties kartes pusē palīdzēs pabeigt darbu īsākā laikā.

mākslīgā intelekta strīdi par un pret

Nekad nav bijis labāka laika, lai apgūtu Hadoopu! Sāciet tūlīt ar Edureka īpaši kurētajiem Big Data un Hadoop kursiem.

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

Saistītās ziņas:

7 veidi, kā lielo datu apmācība var mainīt jūsu organizāciju