hadoop hdfs hadoop distributed file system
Ta vadnica razlaga Hadoop HDFS - Hadoop porazdeljeni datotečni sistem, komponente in arhitektura grozdov. Spoznali boste tudi algoritem ozaveščanja o stojalih:
Kot smo izvedeli v prejšnji vadnici, je največja težava pri Big Data shranjevanje v obstoječi sistem. Pa četudi smo del tega nekako shranili v obstoječi sistem, je obdelava BigData trajala leta.
Rezultati, ki ste jih želeli v nekaj minutah, so trajali tedne ali morda mesece in zaradi tega se je vrednost tega rezultata izgubila.
=> Tukaj si oglejte preproste vadbene serije BigData.
Kaj se boste naučili:
Distribuirani datotečni sistem Hadoop
Za rešitev te težave ali reševanje težave imamo zdaj HADOOP. Hadoop je to težavo z velikimi podatki rešil z uporabo Hadoop HDFS.
Hadoop HDFS rešil problem shranjevanja velikih podatkov in Zemljevid Hadoop Zmanjšaj rešil vprašanja v zvezi z obdelavo dela velikih podatkov.
Zdaj vemo, da ima Hadoop v bistvu porazdeljen datotečni sistem ... A ZAKAJ?
katero potrdilo o preizkušanju programske opreme je najboljše
Zakaj je Hadoop porazdeljeni datotečni sistem?
Poskusimo razumeti, kaj je porazdeljeni datotečni sistem in razumemo prednosti porazdeljenega datotečnega sistema.
Porazdeljeni datotečni sistem
Vzemimo primer branja 1TB podatkov. Imamo strežnik, ki je dober vrhunski strežnik, ki ima 4 V / I (vhodno-izhodne) kanale in ima vsak kanal pasovno širino 100 MB / s. Z uporabo te naprave boste lahko te podatke 1TB prebrali v 43 Zapisnik.
Zdaj, če pripeljemo 10 številk strojev natanko takih, kaj se bo potem zgodilo?
Čas se je zmanjšal na natanko 4,3 minute. To je zato, ker je bil celoten napor razdeljen na 10 strojev, zato se čas, potreben za obdelavo 1TB podatkov, zmanjša na 1/10thtorej 4,3 minute.
Podobno, ko upoštevamo BigData, se ti podatki razdelijo na več kosov podatkov in jih dejansko obdelamo ločeno, zato je Hadoop izbral Distributed File System pred centraliziranim datotečnim sistemom.
Sestavni deli Hadoopa
Hadoop HDFS ima dve glavni komponenti za reševanje težav z BigData.
- Prva komponenta je Hadoop HDFS za shranjevanje velikih podatkov.
- Druga komponenta je Hadoop Map Reduce za obdelavo velikih podatkov.
Zdaj, ko vidimo arhitekturo Hadoopa (slika spodaj), ima dva krila, kjer je levo krilo “Shramba” in desnica je 'Obravnavati' . To pomeni, da je levi HDFS, tj. Hadoop Distribution File System, desni pa YARN in Map Reduce, tj. Je predelovalni del.
Z uporabo HDFS nam Hadoop omogoča shranjevanje velikih podatkov, z uporabo YARN & Map Reduce pa Hadoop omogoča obdelavo istih velikih podatkov, ki jih shranjujemo v HDFS.
Kot lahko vidite na zgornji sliki, ima HDFS dva glavna demona ali pa jih lahko pokličete kot procese ali niti, ki niso nič drugega kot procesi JAVA, tj. Tečejo znotraj JVM - NameNode in DataNode.
NameNode je glavni demon, ki deluje na glavnem računalniku, to je v bistvu vrhunski stroj, DataNode pa je podrejeni stroj, ki deluje na osnovni strojni opremi. DataNode je lahko več, saj so podrejeni stroji več kot glavni računalnik.
Na podrejenih strojih imamo vedno eno NameNode in več DataNode.
Podobno imamo na drugi strani YARN, ki ima spet dva demona, eden je Resource Manager, ki deluje na Master Machine in Node Manager, ki deluje na Slave Machine, tako kot DataNode. Torej ima vsak Slave Machine dva demona - eden je DataNode in drugi Node Manager.
Glavna naprava deluje NameNode in Upravitelj virov. NameNode je odgovoren za upravljanje podatkov v distribucijskem datotečnem sistemu Hadoop, upravitelj virov pa za izvajanje nalog obdelave teh shranjenih podatkov.
NameNode And DataNode
Poglobili se bomo v arhitekturo HDFS, zato je pomembno razumeti, kaj sta NameNode in DataNode, saj sta to dva glavna demona, ki dejansko v celoti poganjata HDFS.
NameNode
- To je mojster demon.
- Upravljanje in vzdrževanje podatkovnih vozlišč.
- Zapiše metapodatke.
- Prejema srčni utrip in blokira poročila iz vseh DataNodes.
DataNode
- To je suženjski demon.
- Tu so shranjeni dejanski podatki.
- Služi zahtevam strank za branje in pisanje.
Samo osredotočite se na Diagram, kot vidite, obstaja Centralizirano imensko vozlišče stroja, ki nadzoruje različne DataNode, ki so tam, tj. Tako Name Node ni nič drugega kot glavni demon, ki vzdržuje vse DataNode.
Ta NameNode imajo vse informacije o podatkih, ki so shranjeni v DataNode. DataNode, kot že samo ime pove, shranjuje podatke, ki so tam v gruči Hadoop.
NameNode vsebuje samo informacije o tem, kateri podatki so shranjeni na katerem DataNode. Torej, kar lahko rečemo, je, da NameNode shrani metapodatke podatkov, ki so shranjeni na DataNodes.
DataNode opravlja tudi drugo nalogo, tj.redovno pošilja srčni utrip nazaj na NameNode. Utripi srca dejansko povedo NameNode, da je to DataNode še vedno živo.
Na primer, DataNodes pošlje srčni utrip nazaj na NameNode in tako ima NameNode sliko, da so ta DataNodes živa, zato lahko NameNode s temi DataNode uporabi za shranjevanje več podatkov ali branje podatkov iz teh DataNodes.
Zdaj smo prišli do DataNode, DataNode ni nič drugega kot podrejeni demoni, ki dejansko shranjujejo podatke, poslane v gručo Hadoop. Ta DataNodes so tista, ki dejansko služijo zahtevi za branje in pisanje, ki jo podajo stranke.
Če nekdo želi prebrati podatke iz grozda Hadoop, potem te zahteve dejansko obdelajo DataNodes, kjer podatki prebivajo.
Arhitektura grozdov Hadoop
V prejšnji temi, povezani z NameNode in DataNode, smo uporabili izraz “Hadoop grozd”. Poglejmo na hitro, kaj točno je to?
Zgornja slika prikazuje pregled arhitekture grozdov Hadoop. Hadoop Cluster ni nič drugega kot Master-Slave Topology, v katerem je Master Machine, kot lahko vidite na vrhu, tj. Hadoop Cluster. V tem glavnem računalniku se izvaja NameNode in upravljalnik virov, tj. Glavni demoni.
Glavni stroj je povezan z vsemi podrejenimi napravami s pomočjo stikal za jedro, ker so ta DataNodes dejansko shranjeni v različnih omarah, tako kot lahko vidite računalnik 1, računalnik 2, računalnik 3 do računalnika N. To ni nič drugega kot podrejeni Stroji ali DataNodes in vsi so prisotni v enem stojalu.
'Stojalo je pravzaprav skupina strojev, ki so fizično prisotni na določenem mestu in so med seboj povezani.'
Tako je pasovna širina omrežja med posameznimi napravami čim manjša. Podobno je več stojal, vendar niso prisotni na isti lokaciji, zato imamo lahko „n“ število stojal in znotraj teh stojalov lahko „n“ število DataNodes ali računalnikov ali podrejenih naprav.
Tako se podrejeni stroji dejansko porazdelijo po gruči, vendar so hkrati povezani med seboj.
Kako se podatki shranjujejo v HDFS?
Zdaj počasi prehajamo v podrobnosti o tem, kako HDFS sploh deluje. Tu bomo raziskali arhitekturo HDFS.
Ko rečemo, da shranimo datoteko v HDFS, se podatki shranijo kot bloki v HDFS. Celotna datoteka ni shranjena v HDFS, ker je, kot veste, Hadoop porazdeljen datotečni sistem.
Torej, če imate datoteko velikosti morda 1 PB (Peta Byte), potem takšen pomnilnik ni prisoten v enem samem računalniku, saj je grozd Hadoop narejen z osnovno strojno opremo. Strojna oprema v enem samem stroju bi bila približno 1 TB ali 2 TB.
Tako je treba celotno datoteko razdeliti na koščke podatkov, ki se imenujejo HDFS Blocks.
- Vsaka datoteka je shranjena v HDFS kot bloki.
- Privzeta velikost vsakega bloka je približno 128 MB v Apache Hadoop 2.x (in 64 MB v prejšnji različici, tj. Apache Hadoop 1.x).
- Obstaja možnost za povečanje ali zmanjšanje velikosti datoteke blokov s pomočjo konfiguracijske datoteke, tj. Hdfssite.xml, ki je priložena paketu Hadoop.
Vzemimo primer, da bi razumeli ta mehanizem in videli, kako nastajajo ti bloki.
Tu razmislimo o datoteki z velikostjo 248 MB, če jo bomo zlomili ali če jo bomo premaknili v Hadoop Cluster, tj. 2.x, bo datoteka razčlenjena na en blok, tj. Na blok A s 128 MB in na drug blok B. 120 MB.
Kot lahko vidite, je prvi blok velikosti 128 MB, to je že prva plošča, ki ga tam posekamo, zato je drugi blok velik 120 MB in ne 128 MB, torej ne bo izgubljal prostora, če bo preostala velikost datoteke manjša kot privzeta velikost bloka.
Zdaj imamo pred seboj še eno težavo, tj. Ali je varno imeti po eno kopijo vsakega bloka?
kako odpreti datoteke .bin
Odgovor je NE, ker obstaja verjetnost, da sistem lahko odpove in ni nič drugega kot osnovna strojna oprema, zaradi katere bi lahko imeli velike težave. Da bi rešili to težavo, ima Hadoop HDFS dobro rešitev, tj. 'Replikacija bloka'.
Replikacija bloka arhitekture Hadoop
Hadoop ustvari replike vsakega bloka, ki se shrani v distribuirani datotečni sistem Hadoop, in tako je Hadoop sistem, ki je odporen na napake, tj. Čeprav vaš sistem odpove ali vaše DataNode odpove ali kopija izgubi, boste imeli več drugih kopij. prisotna v drugih DataNodes ali na drugih strežnikih, tako da lahko od tam vedno izberete te kopije.
Kot je razvidno iz zgornjega diagrama, ki predstavlja kopiranje blokov, obstaja pet različnih blokov datoteke, tj. Blok 1, 2,3,4,5. Najprej preverimo pri bloku 1 in kopije bloka 1 boste našli v vozliščih 1, vozliščih 2 in 4.
Podobno ima blok 2 tudi tri kopije, tj. Vozlišče 2, vozlišče 3 in vozlišče 4 in tako enako za bloke 3, 4 in 5 v ustreznih vozliščih.
Torej, razen ustvarjenih replik, je bil vsak blok trikrat ponovljen, tj. Hadoop sledi privzetemu faktorju replikacije tri, kar pomeni, da se vsaka datoteka, ki jo kopirate v distribucijski datotečni sistem Hadoop, trikrat replicira.
Z drugimi besedami, če kopirate 1 GB datoteke v Hadoop Distribution File System, ta dejansko shrani 3 GB datoteke v HDFS. Dober del je, da je privzeti faktor replikacije spremenljiv s spreminjanjem konfiguracijskih datotek Hadoop-a.
Kako se Hadoop odloči, kje bo shranil replike?
Hadoop dejansko sledi konceptu Rack Awareness, da se odloči, kje bo shranil katero kopijo bloka.
Spodaj je diagram, ki prikazuje algoritem ozaveščanja o stojalih.
Obstajajo trije različni regali, tj. Rack-1, Rack-2 in Rack-3.
Rack-1 ima štiri DataNodes, prav tako Rack-2 in Rack-3, tako da bo celotni Hadoop Cluster sestavljen iz vseh treh stojal in na voljo bo 12 DataNodes.
Recimo, da je blok A kopiran v DataNode 1 v Rack-1, saj v skladu s konceptom Rack Awareness replike bloka A ni mogoče ustvariti v istem stojalu in ga je treba ustvariti v katerem koli drugem stojalu, razen v Rack-1 kot glavna datoteka že obstaja v Rack-1.
Če izdelamo replike bloka A v istem Rack-1 in v primeru, da celotni Rack-1 odpove, bomo podatke zagotovo izgubili, zato morajo biti replike shranjene v katerem koli drugem stojalu, ne pa v Rack-1.
Torej bo replika ustvarjena v DataNode 6 in 8 Rack-2. Podobno bodo za blok B in blok C replike ustvarjene v različnih stojalih, kot je prikazano na zgornjem diagramu.
Zaključek
Iz naslednjih napotkov smo se naučili -
- Hadoop HDFS rešuje problem shranjevanja BigData.
- Hadoop Map Reduce rešuje težave, povezane z obdelavo BigData.
- NameNode je glavni demon in se uporablja za upravljanje in vzdrževanje DataNodes.
- DataNode je podrejeni demon in tukaj so shranjeni dejanski podatki. Služi za branje in pisanje zahtev strank.
- V Hadoop Clusterju je stojalo dejansko skupina strojev, ki so fizično prisotni na določenem mestu in so med seboj povezani.
- Vsaka datoteka je shranjena v HDFS kot bloki.
- Privzeta velikost vsakega bloka je približno 128 MB v Apache Hadoop 2.x (64 MB v prejšnji različici, tj. Apache Hadoop 1.x)
- Obstaja možnost za povečanje ali zmanjšanje velikosti datoteke blokov s pomočjo konfiguracijske datoteke, tj. Hdfssite.xml, ki je priložena paketu Hadoop.
V naslednji vadnici o HDFS bomo spoznali arhitekturo HDFS in mehanizme branja in pisanja.
=> Obiščite tukaj in si oglejte serijo usposabljanj BigData za vse.
Priporočeno branje
- Kaj je Hadoop? Vadnica Apache Hadoop za začetnike
- Manipulacija datotek v Unixu: Pregled datotečnega sistema Unix
- Posebni znaki ali metaznaki Unix za manipulacijo datotek
- Dovoljenja za dostop do datotek Unix: Unix Chmod, Chown in Chgrp
- Ranorex Test Suite, izdelava testnega modula, datoteka UserCode, Xpath in vezava podatkov
- Predmeti datoteke VBScript: CopyFile, DeleteFile, OpenTextFile, branje in pisanje besedilne datoteke
- Izhodne operacije vnosa datotek v C ++
- Uvajanje Java: Ustvarjanje in izvajanje datoteke Java JAR