hadoop hdfs hadoop distributed file system
Deze tutorial legt Hadoop HDFS uit - Hadoop Distributed File System, Components and Cluster Architecture. U leert ook over het algoritme voor rackbewustzijn:
Zoals we in de vorige tutorial hebben geleerd, is het grootste probleem met Big Data om het op te slaan in een bestaand systeem. En zelfs als we een deel ervan op de een of andere manier in een bestaand systeem zouden opslaan, duurde het jaren om die BigData te verwerken.
De resultaten die u in minuten wilde, duurden weken of misschien zelfs maanden en daardoor ging de waarde van dat resultaat verloren.
Bekijk hier de eenvoudige BigData-trainingsserie.
Wat je leert:
Hadoop gedistribueerd bestandssysteem
Om dit probleem op te lossen of om dit probleem op te lossen, hebben we nu HADOOP. Hadoop loste dit big data-probleem op met Hadoop HDFS.
Hadoop HDFS loste het opslagprobleem van Big Data op en Hadoop-kaart verkleinen loste de problemen op met betrekking tot het verwerken van een deel van de Big Data.
Nu weten we dat Hadoop in wezen een gedistribueerd bestandssysteem heeft ... MAAR WAAROM?
top 10 sites om anime te kijken
Waarom is Hadoop een gedistribueerd bestandssysteem?
Laten we proberen te begrijpen wat een gedistribueerd bestandssysteem is en de voordelen van het gedistribueerde bestandssysteem begrijpen.
Gedistribueerd bestandssysteem
Laten we een voorbeeld nemen van het lezen van 1 TB aan gegevens. We hebben een server die een goede high-end server is die 4 I / O (Input Output) kanalen heeft en elk kanaal heeft een bandbreedte van 100 MB / s, met deze machine kun je deze 1 TB data in 43 Minuten.
Als we nu 10 nummers van machines precies zoals deze invoeren, wat zal er dan gebeuren?
Tijd teruggebracht tot exact 4,3 minuten. Het is omdat de hele inspanning is opgedeeld in 10 machines en daarom is de tijd die nodig was om 1 TB aan gegevens te verwerken, teruggebracht tot 1/10thd.w.z. 4,3 minuten.
Evenzo, wanneer we BigData beschouwen, worden die gegevens verdeeld in meerdere stukjes gegevens en verwerken we die gegevens feitelijk afzonderlijk en daarom heeft Hadoop voor Distributed File System gekozen boven een gecentraliseerd bestandssysteem.
Componenten van Hadoop
Hadoop HDFS heeft 2 hoofdcomponenten om de problemen met BigData op te lossen.
- Het eerste onderdeel is de Hadoop HDFS om Big Data op te slaan.
- Het tweede onderdeel is de Hadoop Map Reduce to Process Big Data.
Als we nu de architectuur van Hadoop zien (afbeelding hieronder), heeft het twee vleugels waar de linkervleugel is 'Opslag' en de rechtervleugel is 'Verwerken' Dat betekent dat de linkervleugel het HDFS is, d.w.z. Hadoop Distribution File System en de rechtervleugel YARN en Map Reduce, d.w.z. het verwerkingsgedeelte.
Met behulp van HDFS stelt Hadoop ons in staat om Big Data op te slaan en door YARN & Map Reduce te gebruiken, stelt Hadoop ons in staat om dezelfde Big Data te verwerken die we opslaan in HDFS.
Zoals je in de bovenstaande afbeelding kunt zien, heeft HDFS twee grote daemons of je kunt ze noemen als processen of threads die niets anders zijn dan JAVA-processen, d.w.z. draaien binnen een JVM - NameNode en DataNode.
NameNode is een master-daemon die op Master Machine draait, d.w.z. in wezen een high-end machine en DataNode is een Slave Machine die op standaardhardware draait. Er kunnen meer DataNode zijn, aangezien slavemachines meer zijn dan een mastermachine.
We hebben dus altijd één NameNode en meerdere DataNode die op Slave Machines draaien.
Evenzo hebben we YARN aan de andere kant, dat weer twee daemons heeft, een is de Resource Manager die op de Master Machine draait en Node Manager die op de Slave Machine draait, net als de DataNode. Dus elke Slave Machine heeft twee daemons - de ene is de DataNode en de andere is Node Manager.
Op de Master Machine is NameNode actief en Resource Manager actief. NameNode is verantwoordelijk voor het beheer van de gegevens op het Hadoop Distributed File System en de Resource Manager is verantwoordelijk voor het uitvoeren van de verwerkingstaken voor deze opgeslagen gegevens.
NameNode en DataNode
We zullen dieper ingaan op de HDFS-architectuur en daarom is het belangrijk om te begrijpen wat een NameNode en een DataNode is, aangezien dit de twee belangrijkste daemons zijn die de HDFS daadwerkelijk volledig uitvoeren.
NameNode
- Het is een Master Daemon.
- Beheren en onderhouden van de DataNodes.
- Registreert metagegevens.
- Ontvangt hartslag- en blokrapporten van alle DataNodes.
DataNode
- Het is een Slave Daemon.
- Werkelijke gegevens worden hier opgeslagen.
- Serveert lees- en schrijfverzoeken van de klanten.
Concentreer u gewoon op het diagram, zoals u kunt zien, is er een gecentraliseerde machinenaamknooppunt die verschillende dataknooppunten bestuurt, d.w.z. standaardhardware. Dus Name Node is niets anders dan de Master Daemon die alle DataNode onderhoudt.
Deze NameNode hebben alle informatie over de gegevens die zijn opgeslagen in de DataNode. DataNode, zoals de naam zelf suggereert, slaat de gegevens op die zich in het Hadoop-cluster bevinden.
NameNode heeft alleen de informatie over welke gegevens zijn opgeslagen op welke DataNode. Dus wat we kunnen zeggen is dat NameNode de metadata opslaat van de gegevens die op de DataNodes zijn opgeslagen.
DataNode doet ook nog een andere taak, namelijk het stuurt regelmatig de hartslag terug naar de NameNode. Heartbeats vertellen de NameNode eigenlijk dat deze DataNode nog steeds leeft.
Bijvoorbeeld, DataNodes stuurt een hartslag terug naar de NameNode en op deze manier heeft NameNode het beeld dat deze DataNodes leven, dus NameNode kan deze DataNode gebruiken om meer data op te slaan of de data van deze DataNodes te lezen.
Nu komen we bij de DataNode, DataNode is niets anders dan de Slave Daemons die feitelijk de gegevens opslaat die naar de Hadoop Cluster worden gestuurd. Deze DataNodes zijn degenen die daadwerkelijk het lees- en schrijfverzoek van de clients dienen.
Als iemand de gegevens uit de Hadoop-cluster wil lezen, worden deze verzoeken feitelijk verwerkt door de DataNodes waar de gegevens zich bevinden.
Hadoop-clusterarchitectuur
In het vorige onderwerp met betrekking tot NameNode en DataNode hebben we de term 'Hadoop-cluster'. Laten we even kijken wat het precies is?
De bovenstaande afbeelding toont het overzicht van een Hadoop Cluster Architecture. Hadoop Cluster is niets anders dan een Master-Slave-topologie, waarin zich een Master Machine bevindt zoals je bovenaan kunt zien, d.w.z. Hadoop Cluster. In deze Master Machine is een NameNode en de Resource Manager actief, d.w.z. de Master Daemons.
De Master Machine is verbonden met alle Slave Machines met behulp van de Core Switches, omdat deze DataNodes feitelijk in verschillende rekken zijn opgeslagen, zoals je kunt zien Computer 1, Computer 2, Computer 3 tot Computer N. Dit is niets anders dan de Slave Machines of de DataNodes en ze zitten allemaal in één rack.
'Het rek is eigenlijk een groep machines die fysiek op een bepaalde locatie aanwezig zijn en met elkaar zijn verbonden.'
De netwerkbandbreedte tussen elke machine is dus zo klein mogelijk. Evenzo zijn er meer racks, maar ze zijn niet aanwezig op dezelfde locatie, dus we kunnen een 'n' aantal racks hebben en we kunnen ook een 'n' aantal DataNodes of computers of Slave Machines in deze racks hebben.
Dit is hoe de Slave Machines feitelijk over het cluster worden verdeeld, maar tegelijkertijd met elkaar zijn verbonden.
Hoe worden gegevens opgeslagen in HDFS?
Nu gaan we langzaam in op de details van hoe HDFS helemaal werkt. Hier zullen we de architectuur van HDFS verkennen.
Wanneer we zeggen, het opslaan van een bestand in HDFS, worden de gegevens opgeslagen als blokken in HDFS. Het volledige bestand wordt niet opgeslagen in HDFS, het is omdat, zoals u weet, Hadoop een gedistribueerd bestandssysteem is.
Dus als je een bestandsgrootte hebt van misschien 1 PB (Peta Byte), dan is dit soort opslag niet aanwezig in een enkele machine, aangezien het Hadoop-cluster wordt gemaakt met behulp van de standaardhardware. De hardware in één enkele machine zou ongeveer 1 TB of 2 TB zijn.
Het hele bestand moet dus worden opgesplitst in stukjes gegevens die HDFS-blokken worden genoemd.
- Elk bestand wordt als blokken op HDFS opgeslagen.
- De standaardgrootte van elk blok is ongeveer 128 MB in Apache Hadoop 2.x (en 64 MB in de vorige versie, d.w.z. Apache Hadoop 1.x).
- Er is een mogelijkheid om de bestandsgrootte van de blokken te vergroten of te verkleinen met behulp van het configuratiebestand, d.w.z. hdfssite.xml dat bij het Hadoop-pakket wordt geleverd.
Laten we een voorbeeld nemen om dit mechanisme te begrijpen en kijken hoe deze blokken worden gemaakt.
Laten we hier een bestand van 248 MB beschouwen, als we dit bestand nu opsplitsen of als we dit bestand verplaatsen naar Hadoop Cluster, dwz 2.x, dan wordt dit bestand opgesplitst in één blok, dwz blok A van 128 MB en een ander blok B van 120 MB.
Zoals je kunt zien, is het eerste blok 128 MB, dwz de allereerste plaat wordt daar afgebroken en daarom is het andere blok 120 MB en niet 128 MB, dwz het gaat geen ruimte verspillen als de resterende bestandsgrootte kleiner is dan de standaard blokgrootte.
Nu hebben we een ander probleem voor ons, namelijk is het veilig om een enkele kopie van elk blok te hebben?
beste VPN voor torrenting reddit
Het antwoord is NEE, want er is een kans dat het systeem faalt en het is niets anders dan standaardhardware waardoor we in grote problemen kunnen komen. Om dit probleem op te lossen, heeft Hadoop HDFS een goede oplossing, d.w.z. 'De replicatie van blok'.
Hadoop-architectuurblokreplicatie
Hadoop maakt de replica's van elk blok dat wordt opgeslagen in het Hadoop Distributed File System en dit is hoe de Hadoop een fouttolerant systeem is, dwz zelfs als uw systeem faalt of uw DataNode faalt of een kopie verloren gaat, heeft u meerdere andere exemplaren aanwezig in de andere DataNodes of in de andere servers, zodat u die kopieën daar altijd kunt kiezen.
Zoals te zien is in het bovenstaande diagram dat blokreplicatie vertegenwoordigt, zijn er vijf verschillende blokken van een bestand, d.w.z. blok 1, 2,3,4,5. Laten we eerst kijken met blok 1, en u vindt exemplaren van blok 1 in knooppunt 1, knooppunt 2 en knooppunt 4.
Evenzo heeft blok 2 ook drie exemplaren, d.w.z. knooppunt 2, knooppunt 3 en knooppunt 4 en dus hetzelfde voor blok 3, 4 en 5 in de respectieve knooppunten.
Dus afgezien van de gemaakte replica's, is elk blok driemaal gerepliceerd, d.w.z. Hadoop volgt een standaardreplicatiefactor van drie, wat betekent dat elk bestand dat u naar het Hadoop Distribution File System kopieert, driemaal wordt gerepliceerd.
Met andere woorden, als u 1 GB van een bestand kopieert naar Hadoop Distribution File System, wordt er in feite 3 GB van een bestand in HDFS opgeslagen. Het goede deel is dat de standaardreplicatiefactor kan worden gewijzigd door een wijziging aan te brengen in de configuratiebestanden van Hadoop.
Hoe beslist Hadoop waar de replica's worden opgeslagen?
Hadoop volgt eigenlijk het concept van Rack Awareness om te beslissen waar welke replica van een blok moet worden opgeslagen.
Hieronder ziet u het diagram dat het algoritme voor rackbewustzijn weergeeft.
Er zijn drie verschillende rekken, namelijk Rack-1, Rack-2 en Rack-3.
Rack-1 heeft vier DataNodes en dat geldt ook voor Rack-2 & Rack-3, dus in totaal zal de gehele Hadoop Cluster uit alle drie de racks bestaan en zullen er 12 DataNodes zijn.
Laten we zeggen dat blok A wordt gekopieerd op DataNode 1 in Rack-1, volgens het concept van Rack Awareness kan de replica van Blok A niet in hetzelfde rack worden gemaakt en moet het in een ander rack dan Rack-1 worden gemaakt. het hoofdbestand bestaat al in Rack-1.
Als we de replica's van Blok A in hetzelfde Rack-1 maken en in het geval dat de hele Rack-1 faalt, zullen we de gegevens zeker verliezen, dus de replica's moeten in een ander rack worden opgeslagen, maar niet in Rack-1.
Dus de replica wordt gemaakt in DataNode 6 en 8 van Rack-2. Evenzo zullen voor blok B en blok C de replica's in verschillende rekken worden gemaakt, zoals weergegeven in het bovenstaande diagram.
Gevolgtrekking
We hebben geleerd met de volgende aanwijzingen uit deze tutorial-
- Hadoop HDFS lost het opslagprobleem van BigData op.
- Hadoop Map Reduce lost de problemen op met betrekking tot de verwerking van de BigData.
- NameNode is een Master Daemon en wordt gebruikt om de DataNodes te beheren en te onderhouden.
- DataNode is een Slave Daemon en de feitelijke gegevens worden hier opgeslagen. Het dient om verzoeken van de klanten te lezen en te schrijven.
- In Hadoop Cluster is een rack eigenlijk een groep machines die fysiek op een bepaalde locatie aanwezig zijn en met elkaar zijn verbonden.
- Elk bestand wordt als blokken op HDFS opgeslagen.
- De standaardgrootte van elk blok is ongeveer 128 MB in Apache Hadoop 2.x (64 MB in de vorige versie, d.w.z. Apache Hadoop 1.x)
- Er is een mogelijkheid om de bestandsgrootte van de blokken te vergroten of te verkleinen met behulp van het configuratiebestand, d.w.z. hdfssite.xml dat bij het Hadoop-pakket wordt geleverd.
In de volgende tutorial over HDFS zullen we leren over HDFS-architectuur en lees- en schrijfmechanismen.
Bezoek hier om de BigData-trainingsserie voor iedereen te zien.
Aanbevolen literatuur
- Wat is Hadoop? Apache Hadoop-zelfstudie voor beginners
- Bestandsmanipulatie in Unix: overzicht van Unix-bestandssysteem
- Unix speciale tekens of metatekens voor bestandsmanipulatie
- Toegangsrechten voor Unix-bestanden: Unix Chmod, Chown en Chgrp
- Ranorex Test Suite, Test Module Creation, UserCode File, Xpath en Data Binding
- VBScript-bestandsobjecten: CopyFile, DeleteFile, OpenTextFile, Read en Write Text File
- Bestandsinvoer-uitvoerbewerkingen in C ++
- Java-implementatie: creatie en uitvoering van Java JAR-bestand