hadoop hdfs hadoop distributed file system
Tento výukový program vysvětluje Hadoop HDFS - distribuovaný systém souborů Hadoop, komponenty a klastrovou architekturu. Dozvíte se také o algoritmu Rack Awareness Algorithm:
Jak jsme se dozvěděli v předchozím tutoriálu, největším problémem s Big Data je jeho uložení do existujícího systému. A i když jsme část nějak uložili do existujícího systému, zpracování této BigData trvalo roky.
Výsledky, které jste chtěli během několika minut, trvaly týdny nebo možná měsíce a kvůli tomu byla hodnota tohoto výsledku ztracena.
=> Dávejte pozor na jednoduchou sérii školení BigData zde.
Co se naučíte:
Systém distribuovaných souborů Hadoop
K vyřešení tohoto problému nebo vyrovnání se s tímto problémem nyní máme HADOOP. Hadoop vyřešil tento problém s velkými daty pomocí Hadoop HDFS.
Hadoop HDFS vyřešil problém ukládání dat Big Data a Mapa Hadoop Zmenšit vyřešil problémy související se zpracováním části Big Data.
Nyní víme, že Hadoop má v podstatě distribuovaný systém souborů ... ALE PROČ?
jak odlišný je c ++ od java
Proč je Hadoop distribuovaný systém souborů?
Pokusme se pochopit, co je systém distribuovaných souborů, a pochopit výhody systému distribuovaných souborů.
Distribuovaný systém souborů
Uveďme si příklad čtení 1 TB dat. Máme server, který je dobrým high-end serverem, který má 4 I / O (vstupní výstup) kanály a každý kanál má šířku pásma 100 MB / s, pomocí tohoto stroje budete moci číst tato 1 TB data za 43 Minut.
Pokud tedy přivezeme přesně 10 strojů, tak co se stane?
Čas se zkrátil na přesně 4,3 minuty. Je to proto, že celé úsilí bylo rozděleno na 10 strojů, a proto se čas potřebný ke zpracování 1 TB dat sníží na 1/10thtj. 4,3 minuty.
Podobně, když vezmeme v úvahu BigData, tato data se rozdělí na několik kusů dat a tato data vlastně zpracováváme samostatně, a proto společnost Hadoop zvolila Distribuovaný souborový systém přes centralizovaný souborový systém.
Součásti Hadoop
Hadoop HDFS má 2 hlavní komponenty pro řešení problémů s BigData.
- První komponentou je Hadoop HDFS pro ukládání velkých dat.
- Druhou složkou je Hadoop Map Reduce pro zpracování velkých dat.
Nyní, když vidíme architekturu Hadoop (obrázek níže), má dvě křídla, kde je levé křídlo 'Úložný prostor' a pravice je 'Zpracovává se' . To znamená, že levý křídlo je HDFS, tj. Distribuční souborový systém Hadoop, a pravý křídlo je YARN a Map Reduce, tj. Zpracovatelská část.
Pomocí HDFS nám Hadoop umožňuje ukládat Big Data a pomocí YARN & Map Reduce nám Hadoop umožňuje zpracovávat stejná Big Data, která ukládáme do HDFS.
Jak vidíte na obrázku výše, HDFS má dva hlavní démony, nebo je můžete nazvat jako procesy nebo vlákna, které nejsou ničím jiným než procesy JAVA, tj. Běží v rámci JVM - NameNode a DataNode.
NameNode je hlavní démon, který běží na hlavním stroji, tj. V zásadě špičkový stroj, a DataNode je slave stroj, který běží na komoditním hardwaru. Může existovat více DataNode, protože Slave Machines jsou více než Master Machine.
Na Slave Machines tedy vždy běží jeden NameNode a více DataNode.
Podobně máme YARN na druhé straně, která má opět dva démony, jeden je Resource Manager, který běží na Master Machine a Node Manager, který běží na Slave Machine, stejně jako DataNode. Takže každý Slave Machine má dva démony - jeden je DataNode a druhý je Node Manager.
Hlavní počítač má spuštěný NameNode a spuštěný správce prostředků. NameNode je zodpovědný za správu dat v systému distribuovaných souborů Hadoop a správce prostředků je zodpovědný za provádění úloh zpracování nad těmito uloženými daty.
NameNode A DataNode
Pojdeme hlouběji do architektury HDFS, a proto je důležité pochopit, co je to NameNode a DataNode, protože to jsou dva hlavní démoni, kteří HDFS skutečně provozují úplně.
NameNode
- Je to Master Daemon.
- Správa a údržba DataNodes.
- Zaznamenává metadata.
- Přijímá prezenční signál a blokuje zprávy ze všech DataNodes.
DataNode
- Je to otrokářský démon.
- Zde jsou uložena aktuální data.
- Slouží ke čtení a zápisu požadavků od klientů.
Stačí se zaměřit na Diagram, jak vidíte, existuje Centralized Machine NameNode, který ovládá různé DataNode, které tam jsou, tj. Komoditní hardware. Name Node tedy není nic jiného než Master Daemon, který udržuje veškerý DataNode.
Tyto NameNode mají všechny informace o datech, které jsou uloženy v DataNode. DataNode, jak název napovídá sám, ukládá data, která jsou v clusteru Hadoop.
NameNode má pouze informace o tom, jaké údaje jsou uloženy na kterém DataNode. Takže můžeme říci, že NameNode ukládá metadata dat, která jsou uložena na DataNodes.
DataNode také provádí další úkol, tj. Pravidelně odesílá tlukot srdce zpět do NameNode. Heartbeats vlastně řeknou NameNode, že tento DataNode je stále naživu.
Například, DataNodes odešle prezenční signál zpět do NameNode a tímto způsobem má NameNode obrázek, že tyto DataNodes jsou naživu, takže NameNode může tyto DataNode použít k uložení více dat nebo ke čtení dat z těchto DataNodes.
Nyní přejdeme k DataNode, DataNode není nic jiného než Slave Daemons, kteří ve skutečnosti ukládají data, která jsou odesílána do Hadoop Clusteru. Tyto DataNodes jsou ty, které skutečně slouží k požadavku na čtení a zápis, který dělají klienti.
Pokud někdo chce číst data z Hadoop Clusteru, pak tyto požadavky ve skutečnosti zpracovává DataNodes, kde se data nacházejí.
Klastrová architektura Hadoop
V předchozím tématu týkajícím se NameNode a DataNode jsme použili termín „Hadoop Cluster“. Pojďme se rychle podívat na to, co to přesně je?
Výše uvedený obrázek ukazuje přehled klastrové architektury Hadoop. Hadoop Cluster není nic jiného než topologie Master-Slave, ve které je Master Machine, jak vidíte nahoře, tj. Hadoop Cluster. V tomto hlavním počítači běží NameNode a správce prostředků, tj. Hlavní démoni.
Hlavní stroj je připojen ke všem podřízeným strojům pomocí přepínačů jádra, protože tyto datové uzly jsou ve skutečnosti uloženy v různých regálech, takže vidíte počítač 1, počítač 2, počítač 3 až počítač N. To není nic jiného než slave Stroje nebo DataNodes a všechny jsou přítomny v jednom stojanu.
'Rack je ve skutečnosti skupina strojů, které jsou fyzicky přítomny na jednom konkrétním místě a jsou navzájem propojeny.'
Šířka pásma sítě mezi každým strojem je tedy co možná nejmenší. Podobně existuje více rozvaděčů, ale nejsou přítomny na stejném místě, proto můžeme mít „n“ počet rozvaděčů a v těchto rozvaděčích můžeme mít také „n“ počet DataNodes nebo počítačů nebo Slave Machines.
Takto jsou otrokářské stroje ve skutečnosti distribuovány po klastru, ale zároveň jsou navzájem propojeny.
Jak jsou data uložena v HDFS?
Nyní se pomalu dostáváme k podrobnostem o tom, jak HDFS funguje úplně. Zde prozkoumáme architekturu HDFS.
Když řekneme, že při uložení souboru v HDFS se data uloží jako bloky v HDFS. Celý soubor není uložen v HDFS, je to proto, že jak víte, Hadoop je distribuovaný systém souborů.
Takže pokud máte velikost souboru možná 1 PB (Peta Byte), pak tento druh úložiště není přítomen v jediném stroji, protože cluster Hadoop se vyrábí pomocí komoditního hardwaru. Hardware v jednom jediném počítači by byl něco kolem 1 TB nebo 2 TB.
Celý soubor tedy musí být rozdělen na kousky dat, které se nazývají bloky HDFS.
- Každý soubor je uložen na HDFS jako bloky.
- Výchozí velikost každého bloku je asi 128 MB v Apache Hadoop 2.x (a 64 MB v předchozí verzi, tj. Apache Hadoop 1.x).
- K dispozici je možnost zvětšit nebo zmenšit velikost souboru bloků pomocí konfiguračního souboru, tj. Hdfssite.xml, který je dodáván s balíčkem Hadoop.
Uveďme si příklad, abychom pochopili tento mechanismus a zjistili, jak jsou tyto bloky vytvářeny.
Uvažujme zde soubor 248 MB, pokud nyní tento soubor rozbijeme nebo přesuneme do Hadoop Clusteru, tj. 2.x, bude tento soubor rozdělen na jeden blok, tj. Blok A 128 MB a další Blok B 120 MB.
Jak vidíte, první blok má 128 MB, tzn. První deska se tam ořezává, a proto má druhý blok 120 MB a ne 128 MB, tj. Nebude zbytečně plýtvat prostorem, pokud je zbývající velikost souboru menší než výchozí velikost bloku.
Nyní máme před sebou další problém, tj. Je bezpečné mít jednu kopii každého bloku?
jak otevírat soubory .bin
Odpověď zní NE, protože existuje šance, že by systém mohl selhat, a není to nic jiného než komoditní hardware, kvůli kterému bychom mohli mít velké potíže. K překonání tohoto problému má Hadoop HDFS dobré řešení, tj. „Replikace bloku“.
Replikace bloků architektury Hadoop
Hadoop vytváří repliky každého bloku, který se uloží do systému distribuovaných souborů Hadoop, a tak je Hadoop systémem odolným proti chybám, tzn. I když váš systém selže nebo váš DataNode selže nebo dojde ke ztrátě kopie, budete mít několik dalších kopií v ostatních DataNodech nebo na jiných serverech, abyste si odtud tyto kopie mohli kdykoli vybrat.
Jak je vidět na výše uvedeném diagramu, který představuje Block Replication, existuje pět různých bloků souboru, tj. Blok 1, 2,3,4,5. Nejprve se podívejme na blok 1 a v uzlu 1, uzlu 2 a uzlu 4 najdete kopie bloku 1.
Podobně má blok 2 také tři kopie, tj. Uzel 2, uzel 3 a uzel 4, a tedy stejné pro blok 3, 4 a 5 v příslušných uzlech.
Takže kromě vytváření replik byl každý blok třikrát replikován, tzn. Hadoop sleduje výchozí faktor replikace tři, což znamená, že jakýkoli soubor, který zkopírujete do systému distribuce souborů Hadoop, bude replikován třikrát.
Jinými slovy, pokud zkopírujete 1 GB souboru do distribučního systému souborů Hadoop, ve skutečnosti uloží 3 GB souboru do HDFS. Dobrá část je, že výchozí faktor replikace je měnitelný provedením změny v konfiguračních souborech Hadoop.
Jak Hadoop rozhodne, kam uložit repliky?
Hadoop se vlastně řídí konceptem Rack Awareness, aby se rozhodl, kam uložit jakou repliku bloku.
Níže je uveden diagram znázorňující algoritmus Rack Awareness Algorithm.
Existují tři různé stojany, tj. Rack-1, Rack-2 a Rack-3.
Rack-1 má čtyři DataNodes, stejně jako Rack-2 a Rack-3, takže celkem bude celý Hadoop Cluster sestávat ze všech tří racků a bude zde 12 DataNodes.
Řekněme, že blok A je zkopírován na DataNode 1 v Rack-1, podle konceptu Rack Awareness nemůže být replika bloku A vytvořena ve stejném stojanu a musí být vytvořena v jakémkoli jiném stojanu kromě Rack-1 jako hlavní soubor již existuje v Rack-1.
Pokud vytvoříme repliky bloku A ve stejném Rack-1 a v případě, že celý Rack-1 selže, pak pro jistotu přijdeme o data, musí být repliky uloženy v jakémkoli jiném stojanu, ale ne v Rack-1.
Takže replika bude vytvořena v DataNode 6 a 8 Rack-2. Podobně pro blok B a blok C budou repliky vytvářeny v různých regálech, jak je znázorněno na výše uvedeném diagramu.
Závěr
Z tohoto tutoriálu jsme se naučili s následujícími ukazateli -
- Hadoop HDFS řeší problém úložiště BigData.
- Hadoop Map Reduce řeší problémy spojené se zpracováním BigData.
- NameNode je hlavní démon a používá se ke správě a údržbě datových uzlů.
- DataNode je podřízený démon a jsou zde uložena skutečná data. Slouží ke čtení a zápisu požadavků od klientů.
- V Hadoop Clusteru je stojan ve skutečnosti skupina strojů, které jsou fyzicky přítomny na jednom konkrétním místě a jsou navzájem propojeny.
- Každý soubor je uložen na HDFS jako bloky.
- Výchozí velikost každého bloku je asi 128 MB v Apache Hadoop 2.x (64 MB v předchozí verzi, tj. Apache Hadoop 1.x)
- K dispozici je možnost zvětšit nebo zmenšit velikost souboru bloků pomocí konfiguračního souboru, tj. Hdfssite.xml, který je dodáván s balíčkem Hadoop.
V dalším kurzu o HDFS se dozvíme o architektuře HDFS a mechanismech čtení a zápisu.
=> Navštivte zde a prohlédněte si tréninkovou sérii BigData pro všechny.
Doporučené čtení
- Co je Hadoop? Výukový program Apache Hadoop pro začátečníky
- Manipulace se soubory v systému Unix: Přehled systému souborů Unix
- Unix speciální znaky nebo metaznaky pro manipulaci se soubory
- Unixová oprávnění pro přístup k souborům: Unix Chmod, Chown a Chgrp
- Ranorex Test Suite, tvorba testovacích modulů, soubor UserCode, Xpath a datová vazba
- Objekty souboru VBScript: CopyFile, DeleteFile, OpenTextFile, čtení a zápis textového souboru
- Operace se vstupem a výstupem souboru v C ++
- Implementace Java: Vytvoření a spuštění souboru Java JAR