hadoop hdfs hadoop distributed file system
Tento výukový program vysvetľuje Hadoop HDFS - distribuovaný súborový systém Hadoop, komponenty a klastrovú architektúru. Dozviete sa tiež o algoritme zvyšovania povedomia o stojane:
Ako sme sa dozvedeli v predchádzajúcom tutoriáli, najväčším problémom Big Data je uložiť ich do existujúceho systému. A aj keď sme časť nejako uložili do existujúceho systému, spracovanie tejto BigData trvalo roky.
Výsledky, ktoré ste požadovali za pár minút, trvali týždne alebo možno mesiace a z tohto dôvodu sa hodnota tohto výsledku stratila.
=> Dajte si pozor na jednoduchú sériu školení BigData tu.
Čo sa dozviete:
Systém distribuovaných súborov Hadoop
Na vyriešenie tohto problému alebo riešenie tohto problému máme teraz HADOOP. Hadoop vyriešil tento problém s veľkými dátami pomocou Hadoop HDFS.
Hadoop HDFS vyriešil problém s ukladaním dát Big Data a Mapa Hadoop Zmenšiť vyriešil problémy spojené so spracovaním časti Big Data.
Teraz vieme, že Hadoop má v podstate distribuovaný systém súborov ... ALE PREČO?
aký nástroj môžete použiť na vizuálne znázornenie a analýzu databázy?
Prečo je Hadoop distribuovaný systém súborov?
Pokúsme sa pochopiť, čo je to systém distribuovaných súborov a pochopíme výhody systému distribuovaných súborov.
Distribuovaný systém súborov
Uveďme si príklad načítania 1 TB dát. Máme server, ktorý je dobrým serverom vyššej kategórie a ktorý má 4 kanály I / O (vstupný výstup) a každý kanál má šírku pásma 100 MB / s. Pomocou tohto stroja budete môcť tieto údaje 1 TB načítať v 43 Zápisnice.
Ak teraz privedieme 10 nosov presne podobných strojov, čo sa stane?
Čas sa znížil na presne 4,3 minúty. Je to preto, že celé úsilie bolo rozdelené do 10 strojov, a preto sa čas potrebný na spracovanie 1 TB dát skráti na 1/10thteda 4,3 minúty.
Podobne, keď vezmeme do úvahy BigData, tieto údaje sa rozdelia na viac častí údajov a tieto údaje skutočne spracujeme osobitne, a preto si spoločnosť Hadoop zvolila Distribuovaný súborový systém nad Centralizovaný súborový systém.
Súčasti Hadoop
Hadoop HDFS má 2 hlavné komponenty na riešenie problémov s BigData.
- Prvým komponentom je Hadoop HDFS na ukladanie veľkých dát.
- Druhým komponentom je Hadoop Map Reduce na spracovanie veľkých dát.
Teraz, keď vidíme architektúru Hadoop (obrázok uvedený nižšie), má dve krídla, kde je ľavá strana „Skladovanie“ a pravica je „Spracovanie“ . To znamená, že ľavica je HDFS, t. J. Distribučný súborový systém Hadoop, a pravica, YARN a Map Reduce, teda časť spracovania.
Pomocou HDFS nám Hadoop umožňuje ukladať veľké dáta a pomocou YARN & Map Reduce nám Hadoop umožňuje spracovávať rovnaké veľké dáta, ktoré ukladáme do HDFS.
Ako vidíte na obrázku vyššie, HDFS má dvoch hlavných démonov alebo ich môžete nazvať ako procesy alebo vlákna, ktoré nie sú ničím iným ako procesmi JAVA, t. J. Bežiacimi v rámci JVM - NameNode a DataNode.
NameNode je hlavný démon, ktorý beží na hlavnom stroji, t. J. V podstate na stroji vyššej triedy, a DataNode je slave stroj, ktorý beží na komoditnom hardvéri. Môže existovať viac DataNode, pretože otrokárske stroje sú viac ako hlavný stroj.
Na Slave Machines teda vždy beží jeden NameNode a viac DataNode.
Podobne máme YARN na druhej strane, ktorá má opäť dvoch démonov, jeden je Resource Manager, ktorý beží na hlavnom počítači a Node Manager, ktorý beží na podriadenom počítači, rovnako ako DataNode. Takže každý Slave Machine má dvoch démonov - jeden je DataNode a druhý je Node Manager.
Hlavný počítač má spustený NameNode a spustený Správca zdrojov. NameNode je zodpovedný za správu údajov v distribuovanom systéme súborov Hadoop a správca zdrojov je zodpovedný za vykonávanie úloh spracovania týchto uložených údajov.
NameNode a DataNode
Pôjdeme hlboko do architektúry HDFS, a preto je dôležité pochopiť, čo je to NameNode a DataNode, pretože to sú dva hlavné démony, ktoré v skutočnosti používajú úplne HDFS.
NameNode
- Je to Master Daemon.
- Správa a údržba DataNodes.
- Zaznamenáva metadáta.
- Prijíma signály srdca a blokuje správy zo všetkých DataNodes.
DataNode
- Je to otrokársky démon.
- Tu sa ukladajú skutočné údaje.
- Slúži na čítanie a zápis požiadaviek od klientov.
Stačí sa sústrediť na Diagram, ako vidíte, že existuje Centralizovaný názov stroja, ktorý ovláda rôzne dátové uzly, ktoré sa tam nachádzajú, tj. Komoditný hardvér. Názov uzla teda nie je nič iné ako Master Daemon, ktorý udržiava všetky DataNode.
Tieto NameNode obsahujú všetky informácie o údajoch, ktoré sú uložené v DataNode. Už samotný názov DataNode ukladá údaje, ktoré sa tam nachádzajú v klastri Hadoop.
NameNode má iba informácie o tom, aké údaje sú uložené na ktorom DataNode. Čo teda môžeme povedať, je, že NameNode ukladá metaúdaje údajov, ktoré sú uložené v DataNodes.
DataNode robí aj inú úlohu, t. J. Pravidelne odosiela tep späť do NameNode. Tepy v skutočnosti povedia NameNode, že tento DataNode je stále nažive.
Napríklad, DataNodes odošle signál späť do NameNode a týmto spôsobom bude mať názov, že tieto DataNodes sú živé, takže NameNode môže tieto DataNode použiť na ukladanie ďalších údajov alebo na čítanie údajov z týchto DataNodes.
Teraz prichádzame k DataNode, DataNode nie je nič iné ako Slave Daemons, ktorý v skutočnosti uchováva údaje odoslané do klastra Hadoop. Tieto DataNodes sú tie, ktoré skutočne slúžia na požiadavku na čítanie a zápis, ktorú urobia klienti.
Ak niekto chce čítať údaje z klastra Hadoop, potom tieto žiadosti skutočne spracuje stĺpec DataNodes, kde sa tieto údaje nachádzajú.
Klastrová architektúra Hadoop
V predchádzajúcej téme týkajúcej sa NameNode a DataNode sme použili výraz „Klaster Hadoop“. Poďme sa rýchlo pozrieť na to, čo to presne je?
Vyššie uvedený obrázok zobrazuje prehľad architektúry klastra Hadoop. Hadoop Cluster nie je nič iné ako topológia Master-Slave, v ktorej je Master Machine, ako vidíte na vrchu, tj Hadoop Cluster. V tomto hlavnom počítači je spustený NameNode a správca zdrojov, tj. Hlavní démoni.
Hlavný stroj je pripojený k všetkým podriadeným počítačom pomocou prepínačov jadra, pretože tieto dátové uzly sú skutočne uložené v rôznych stojanoch, takže vidíte počítač 1, počítač 2, počítač 3 až počítač N. To nie je nič iné ako podriadený počítač Stroje alebo DataNodes a všetky sú prítomné v jednom stojane.
„Regál je vlastne skupina strojov, ktoré sú fyzicky prítomné na jednom konkrétnom mieste a sú navzájom spojené.“
Šírka pásma siete medzi každým strojom je teda čo najmenšia. Podobne existuje viac regálov, avšak nie sú prítomné na rovnakom mieste, preto môžeme v týchto regáloch mať „n“ počet regálov a môžeme mať aj „n“ počet DataNodes alebo počítačov alebo podriadených strojov.
Takto sú podriadené stroje v skutočnosti distribuované v klastri, súčasne sú však navzájom prepojené.
Ako sa údaje ukladajú v systéme HDFS?
Teraz pomaly prechádzame k podrobnostiam toho, ako HDFS funguje úplne. Tu preskúmame architektúru HDFS.
Keď povieme, že pri uložení súboru do HDFS sa údaje uložia ako bloky do HDFS. Celý súbor nie je uložený v HDFS, je to preto, lebo ako viete, Hadoop je distribuovaný systém súborov.
Takže ak máte veľkosť súboru možno 1 PB (Peta Byte), potom tento druh úložiska nie je prítomný v jednom stroji, pretože klaster Hadoop sa vyrába pomocou komoditného hardvéru. Hardvér v jednom jedinom stroji by bol niečo okolo 1 TB alebo 2 TB.
Preto je potrebné celý súbor rozdeliť na kúsky údajov, ktoré sa nazývajú bloky HDFS.
- Každý súbor je uložený na HDFS ako bloky.
- Predvolená veľkosť každého bloku je asi 128 MB v Apache Hadoop 2.x (a 64 MB v predchádzajúcej verzii, tj. Apache Hadoop 1.x).
- K dispozícii je možnosť zväčšiť alebo zmenšiť veľkosť súboru blokov pomocou konfiguračného súboru, tj. Hdfssite.xml, ktorý sa dodáva s balíkom Hadoop.
Uveďme si príklad na pochopenie tohto mechanizmu a zistenie, ako sa tieto bloky vytvárajú.
Uvažujme tu o súbore s veľkosťou 248 MB. Ak tento súbor rozbijeme alebo presunieme do klastra Hadoop, tj. 2.x, bude tento súbor rozdelený na jeden blok, tj. Blok A s veľkosťou 128 MB a ďalší blok B 120 MB.
Ako vidíte, prvý blok má 128 MB, tj. Prvá doska sa tam zarezáva, a preto má druhý blok 120 MB a nie 128 MB, tj. Ak zostávajúca veľkosť súboru bude menšia, nebude zbytočne míňať miesto. ako je predvolená veľkosť bloku.
Teraz máme pred sebou ďalší problém, t. J. Je bezpečné mať jednu kópiu každého bloku?
ako otvárať súbory .bin
Odpoveď je NIE, pretože existuje šanca, že by systém mohol zlyhať, a nejde o nič iné ako komoditný hardvér, kvôli ktorému by sme mohli mať veľké problémy. Na prekonanie tohto problému má Hadoop HDFS dobré riešenie, t.j. „Replikácia bloku“.
Replikácia blokov architektúry Hadoop
Hadoop vytvára repliky každého bloku, ktorý sa uloží do systému distribuovaných súborov Hadoop, a takto je Hadoop systém odolný voči chybám, tj. Hoci váš systém zlyhá alebo zlyhá váš DataNode alebo sa stratí kópia, budete mať niekoľko ďalších kópií v iných DataNodes alebo na iných serveroch, aby ste si odtiaľ tieto kópie mohli kedykoľvek vybrať.
Ako je vidieť na vyššie uvedenom diagrame, ktorý predstavuje Blokovú replikáciu, existuje päť rôznych blokov súboru, tj. Blok 1, 2,3,4,5. Najprv sa pozrime na blok 1 a v uzle 1, uzle 2 a uzle 4 nájdete kópie bloku 1.
Podobne má Blok 2 tiež tri kópie, t. J. Uzol 2, Uzol 3 a Uzol 4, a teda rovnaké pre Blok 3, 4 a 5 v príslušných Uzloch.
Takže okrem vytvárania replík bol každý blok trikrát replikovaný, t. J. Program Hadoop dodržiava predvolený faktor replikácie tri, čo znamená, že každý súbor, ktorý skopírujete do distribučného systému súborov Hadoop, bude trikrát replikovaný.
Inými slovami, ak skopírujete 1 GB súboru do systému distribúcie súborov Hadoop, v skutočnosti uloží 3 GB súboru do HDFS. Dobrá stránka je, že predvolený faktor replikácie je možné zmeniť vykonaním zmeny v konfiguračných súboroch Hadoop.
Ako Hadoop rozhodne, kam uložiť repliky?
Hadoop sa vlastne riadi konceptom Rack Awareness pri rozhodovaní o tom, kam uložiť ktorú repliku bloku.
Nižšie je uvedený diagram znázorňujúci algoritmus Rack Awareness Algorithm.
Existujú tri rôzne stojany, tj. Rack-1, Rack-2 a Rack-3.
Rack-1 má štyri DataNodes, rovnako tak aj Rack-2 a Rack-3, takže celkovo bude celý klaster Hadoop pozostávať zo všetkých troch stojanov a bude tu 12 DataNodes.
Povedzme, že blok A je kopírovaný na DataNode 1 v Rack-1, podľa konceptu Rack Awareness nemôže byť replika bloku A vytvorená v rovnakom stojane a musí byť vytvorená v akomkoľvek inom stojane okrem Rack-1 ako hlavný súbor už existuje v Rack-1.
Ak vytvoríme repliky bloku A v rovnakom Rack-1 a v prípade, že celý Rack-1 zlyhá, stratíme pre istotu dáta, takže repliky musia byť uložené v akomkoľvek inom stojane, ale nie v Rack-1.
Takže replika bude vytvorená v DataNode 6 a 8 v Rack-2. Podobne pre bloky B a C budú repliky vytvárané v rôznych stojanoch, ako je to znázornené na obrázku vyššie.
Záver
Z tohto tutoriálu sme sa naučili nasledujúce ukazovatele
- Hadoop HDFS rieši problém BigData s úložiskom.
- Hadoop Map Reduce rieši problémy spojené so spracovaním BigData.
- NameNode je hlavný démon a používa sa na správu a údržbu dátových uzlov.
- DataNode je podriadený démon a tu sa ukladajú skutočné údaje. Slúži na čítanie a zápis požiadaviek od klientov.
- V klastri Hadoop je stojan vlastne skupina strojov, ktoré sú fyzicky prítomné na jednom konkrétnom mieste a sú navzájom spojené.
- Každý súbor je uložený na HDFS ako bloky.
- Predvolená veľkosť každého bloku je asi 128 MB v Apache Hadoop 2.x (64 MB v predchádzajúcej verzii, tj. Apache Hadoop 1.x)
- K dispozícii je možnosť zväčšiť alebo zmenšiť veľkosť súboru blokov pomocou konfiguračného súboru, tj. Hdfssite.xml, ktorý sa dodáva s balíkom Hadoop.
V ďalšom návode na HDFS sa dozvieme o architektúre HDFS a mechanizmoch čítania a zápisu.
=> Navštívte tu a pozrite si sériu školení BigData pre všetkých.
Odporúčané čítanie
- Čo je Hadoop? Výukový program Apache Hadoop pre začiatočníkov
- Manipulácia so súbormi v systéme Unix: Prehľad systému súborov Unix
- Špeciálne znaky alebo metaznaky Unix na manipuláciu so súbormi
- Povolenia na prístup k súborom Unix: Unix Chmod, Chown a Chgrp
- Ranorex Test Suite, vytvorenie testovacieho modulu, súbor UserCode, Xpath a viazanie údajov
- Objekty súboru VBScript: CopyFile, DeleteFile, OpenTextFile, čítanie a zápis textového súboru
- Operácie so vstupom a výstupom súboru v C ++
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR