Uvod u MapReduce
MapReduce je računska komponenta Hadoop okvira za jednostavno pisanje aplikacija koje paralelno obrađuju velike količine podataka i pohranjuju se na velikim klasterima jeftinih robnih strojeva na pouzdan i neispravan način. U ovoj ćemo temi saznati kako MapReduce funkcionira?
MapReduce može izvoditi raspodijeljene i paralelne račune koristeći velike skupove podataka u velikom broju čvorova. MapReduce posao obično dijeli ulazne skupove podataka, a zatim ih svaki pojedinačno obrađuje zadatcima Map na potpuno paralelan način. Izlaz se zatim sortira i unosi za smanjenje zadataka. Unos i izlaz posla pohranjuju se u datotečnim sustavima. Zadaci se planiraju i prate u okviru.
Kako funkcionira MapReduce?
MapReduce arhitektura sadrži dvije osnovne komponente kao servisi Daemon odgovorni za pokretanje zadataka preslikača i reduktora, nadgledanje i ponovno izvršavanje zadataka u slučaju neuspjeha. U Hadoopu 2 nadalje Upravitelj resursa i Upravitelj čvorova su usluge daemona. Kad klijent posla posao, podnese MapReduce, ti demoni stupaju na snagu. Oni su također odgovorni za paralelnu obradu i značajke otpornosti na greške MapReduce poslova.
YARN (Još jedan pregovarač o resursima) u Hadoop-u 2 upravljanje resursima i raspoređivanje poslova ili nadzorne funkcije razdvajaju kao različite demone. U usporedbi s Hadoop-om 1 s alatom za praćenje posla i alatom za praćenje zadataka, Hadoop 2 sadrži globalni upravitelj resursa (RM) i aplikacijski master (AM) za svaku aplikaciju.
- Klijent posla predaje posao upravitelju resursa.
- Planer programa YARN Resource Manager odgovoran je za koordinaciju raspodjele resursa klastera među tekućim aplikacijama.
- Upravljač čvorova YARN radi na svakom čvorištu i upravlja s resursima na razini čvora, koordinirajući s upraviteljem resursa. Pokreće i nadzire računske spremnike na stroju na klasteru.
- Voditelj aplikacije pomaže resursima Resource Managera i koristi Node Manager za pokretanje i koordiniranje zadataka MapReduce.
- HDFS se obično koristi za dijeljenje datoteka sa zadacima između drugih entiteta.
Faze modela MapReduce
MapReduce model ima tri glavne i jednu izbornu fazu:
1. Mapper
- To je prva faza programiranja MapReduce i sadrži logiku kodiranja funkcije mapiranja.
- Uvjetna se logika primjenjuje na 'n' broj blokova podataka raspoređenih u različitim čvorovima podataka.
- Mapper funkcija prihvaća parove ključ-vrijednost kao ulaz kao (k, v), gdje ključ predstavlja offset adresu svakog zapisa i vrijednost predstavlja cjelokupni sadržaj zapisa.
- Izlaz faze Mapper će također biti u formatu ključ-vrijednost kao (k ', v').
2. Promiješajte i razvrstajte
- Izlaz raznih preslikača (k ', v'), zatim prelazi u fazu nasumične reprodukcije i sortiranja.
- Sve duplicirane vrijednosti se uklanjaju, a različite vrijednosti grupiraju se na temelju sličnih ključeva.
- Izlaz faze nasumične reprodukcije i sortiranja ponovo će biti parovi ključ-vrijednost kao ključ i niz vrijednosti (k, v ()).
3. reduktor
- Izlaz faze nasumične reprodukcije i razvrstavanja (k, v ()) bit će ulaz faze reduktora.
- U ovoj se fazi izvršava logika funkcije reduktora i sve se vrijednosti objedinjuju s odgovarajućim tipkama.
- Reduktor konsolidira izlaze različite preslikavače i izračunava konačni izlaz posla.
- Konačni izlaz tada se zapisuje u jednu datoteku u izlaznu mapu HDFS.
4. Kombinator
- To je neobavezna faza u modelu MapReduce.
- Faza kombinatora služi za optimizaciju performansi zadataka MapReduce.
- U ovoj fazi različiti se izlazi kartera lokalno smanjuju na razini čvora.
- Na primjer, ako različiti izlazi (k, v) mapiranja koji dolaze iz jednog čvora sadrže duplikate, oni se kombiniraju, tj. Lokalno smanjuju kao pojedinačni (k, v ()) izlaz.
- Ova faza čini rad faze izmještanja i sortiranja još bržim, omogućavajući dodatni učinak u poslovima MapReduce.
Sve ove faze u MapReduce poslu mogu se prikazati kao dolje:
Na primjer, MapReduce logika za pronalaženje broja riječi u nizu riječi može se prikazati kao dolje:
ruit_array = (jabuka, naranča, jabuka, guava, grožđe, naranča, jabuka)
- Faza mapiranja tokenizira ulazni niz riječi u 'n' broju riječi kako bi se dobio izlaz kao (k, v). Na primjer, uzmite u obzir "jabuku". Izlaz preslikača bit će (jabuka, 1), (jabuka, 1), (jabuka, 1).
- Shuffle i Sort prihvaćaju preslikač (k, v) i grupiraju sve vrijednosti prema ključevima kao (k, v ()). tj. (jabuka, (1, 1, 1)).
- Faza reduktora prihvaća izlazni raspored i sortiranje i daje agregat vrijednosti (jabuka, (1 + 1 + 1)), koje odgovaraju njihovim ključevima. tj. (jabuka, 3).
Špekulativno izvršavanje posla MapReduce
U brzini MapReducea dominira najsporiji zadatak. Dakle, kako bi ubrzao brzinu, novi mapir će istovremeno raditi na istom skupu podataka. Koji dovrši zadatak, prvo se smatra konačnim ishodom, a drugi je ubijen. To je tehnika optimizacije.
Prednosti MapReducea
Ovdje blagodati spominju blagodati MapReducea
1. Tolerancija na greške
- U sredini posla smanjenja karata, ako stroj koji ima nekoliko blokova podataka ne uspije u arhitekturi, rješava neuspjeh.
- Razmatra replicirane kopije blokova u zamjenskim strojevima za daljnju obradu.
2. Otpornost
- Svaki čvor periodično ažurira svoj status na glavni čvor.
- Ako podređeni čvor ne pošalje svoju obavijest, glavni čvor dodijeljuje trenutačno izvršeni zadatak tog slave čvora drugim dostupnim čvorovima u klasteru.
3. Brzo
- Obrada podataka je brza jer MapReduce koristi HDFS kao sustav za pohranu.
- MapReduce treba nekoliko minuta za obradu terabajta nestrukturirane velike količine podataka.
4. Paralelna obrada
- Zadaci MapReduce paralelno dijele više komada istih skupova podataka dijeljenjem zadataka.
- To daje prednost ispunjavanju zadatka za manje vremena.
5. Dostupnost
- Višestruke replike istih podataka šalju se brojnim čvorovima u mreži.
- Stoga su, u slučaju bilo kakvog kvara, ostale kopije lako dostupne za obradu bez ikakvih gubitaka.
6. Skalabilnost
- Hadoop je visoko skalabilna platforma.
- Tradicionalni RDBMS sustavi nisu skalabilni prema povećanju obujma podataka.
- MapReduce omogućuje pokretanje aplikacija iz ogromnog broja čvorova, koristeći terabajte i petabajte podataka.
7. Isplativa
- Značajka Hadoopovog skaliranja zajedno s MapReduce programiranjem omogućava pohranu i obradu podataka na vrlo učinkovit i pristupačan način.
- Ušteda troškova može biti velika kao stotine stotina za terabajte podataka.
Zaključak - Kako funkcionira MapReduce
Moderni podaci sve više idu prema nestrukturiranom tipu, a ogromna, konvencionalna opcija obrade podataka poput RDBMS-a još je teža, dugotrajna i skupa. Ali Hadoop-ovo MapReduce programiranje mnogo je učinkovitije, sigurnije i brže u obradi velikih skupova podataka, čak i terabajta ili petabajta.
Preporučeni članci
Ovo je vodič za rad MapReducea. Ovdje smo raspravljali o fazama modela MapReduce s prednostima i kako to funkcionira. Možete također pogledati sljedeće članke da biste saznali više -
- Komponente ekosustava Hadoop
- Algoritmi MapReduce
- Što je MapReduce u Hadoopu?
- Pitanja o intervjuu MapReduce