hadoop hdfs hadoop distributed file system
In diesem Tutorial werden Hadoop HDFS - Hadoop Distributed File System, Komponenten und Cluster-Architektur erläutert. Sie erfahren auch mehr über den Rack Awareness-Algorithmus:
Wie wir im vorherigen Tutorial erfahren haben, besteht das größte Problem bei Big Data darin, es in einem vorhandenen System zu speichern. Und selbst wenn wir einen Teil davon in einem vorhandenen System gespeichert haben, dauerte die Verarbeitung dieser BigData Jahre.
Die Ergebnisse, die Sie in Minuten wollten, dauerten Wochen oder vielleicht Monate, und aufgrund dessen ging der Wert dieses Ergebnisses verloren.
=> Sehen Sie sich hier die einfache BigData-Schulungsserie an.
Was du lernen wirst:
Hadoop Distributed File System
Um dieses Problem zu lösen oder dieses Problem zu lösen, haben wir jetzt HADOOP. Hadoop löste dieses Big-Data-Problem mit Hadoop HDFS.
Hadoop HDFS löste das Speicherproblem von Big Data und Hadoop Map Reduce Die Probleme im Zusammenhang mit der Verarbeitung eines Teils der Big Data wurden behoben.
Jetzt wissen wir, dass Hadoop im Wesentlichen ein verteiltes Dateisystem hat… ABER WARUM?
kostenloser Firewall-Download für Windows 10
Warum ist Hadoop ein verteiltes Dateisystem?
Versuchen wir zu verstehen, was ein verteiltes Dateisystem ist, und die Vorteile des verteilten Dateisystems zu verstehen.
Verteiltes Dateisystem
Nehmen wir ein Beispiel für das Lesen von 1 TB Daten. Wir haben einen Server, der ein guter High-End-Server ist, der über 4 E / A-Kanäle (Input Output) verfügt und jeder Kanal eine Bandbreite von 100 MB / s hat. Mit diesem Computer können Sie diese 1 TB-Daten in 43 lesen Protokoll.
Wenn wir nun genau so 10 Maschinen einbringen, was passiert dann?
Die Zeit wurde auf genau 4,3 Minuten reduziert. Dies liegt daran, dass der gesamte Aufwand auf 10 Maschinen aufgeteilt wurde. Daher reduziert sich die Zeit, die für die Verarbeitung von 1 TB Daten benötigt wurde, auf 1/10thd.h. 4,3 Minuten.
Wenn wir BigData betrachten, werden diese Daten in mehrere Datenblöcke aufgeteilt, und wir verarbeiten diese Daten tatsächlich separat. Aus diesem Grund hat Hadoop das verteilte Dateisystem einem zentralisierten Dateisystem vorgezogen.
Komponenten von Hadoop
Hadoop HDFS verfügt über zwei Hauptkomponenten, um die Probleme mit BigData zu lösen.
- Die erste Komponente ist das Hadoop HDFS zum Speichern von Big Data.
- Die zweite Komponente ist die Hadoop Map Reduce zur Verarbeitung von Big Data.
Wenn wir nun die Architektur von Hadoop sehen (Bild unten), hat sie zwei Flügel, wo sich der linke Flügel befindet 'Lager' und der rechte ist 'Wird bearbeitet' . Das heißt, der linke Flügel ist das HDFS, d. H. Das Hadoop Distribution File System, und der rechte ist YARN und Map Reduce, d. H. Der Verarbeitungsteil.
Mit HDFS können wir mit Hadoop Big Data speichern und mit YARN & Map Reduce mit Hadoop dieselben Big Data verarbeiten, die wir in HDFS speichern.
Wie Sie im obigen Bild sehen können, verfügt HDFS über zwei Hauptdämonen, oder Sie können sie als Prozesse oder Threads aufrufen, die nichts anderes als JAVA-Prozesse sind, d. H. Innerhalb einer JVM ausgeführt werden - NameNode und DataNode.
NameNode ist ein Master-Daemon, der auf einem Master-Computer ausgeführt wird, d. H. Im Wesentlichen ein High-End-Computer, und DataNode ist ein Slave-Computer, der auf Standardhardware ausgeführt wird. Es kann mehr DataNode geben, da Slave-Maschinen mehr als eine Master-Maschine sind.
Wir haben also immer einen NameNode und mehrere DataNode, die auf Slave-Maschinen ausgeführt werden.
In ähnlicher Weise haben wir YARN auf der anderen Seite, das wiederum zwei Dämonen hat, einer ist der Ressourcenmanager, der auf dem Master-Computer ausgeführt wird, und der Knoten-Manager, der auf dem Slave-Computer ausgeführt wird, genau wie der DataNode. Jede Slave-Maschine hat also zwei Dämonen - einer ist der DataNode und der andere ist Node Manager.
Auf dem Master-Computer werden der NameNode und der Ressourcenmanager ausgeführt. NameNode ist für die Verwaltung der Daten im verteilten Hadoop-Dateisystem verantwortlich, und der Ressourcenmanager ist für die Ausführung der Verarbeitungsaufgaben für diese gespeicherten Daten verantwortlich.
NameNode und DataNode
Wir werden uns eingehend mit der HDFS-Architektur befassen. Daher ist es wichtig zu verstehen, was ein NameNode und ein DataNode sind, da dies die beiden Hauptdämonen sind, auf denen das HDFS tatsächlich vollständig ausgeführt wird.
NameNode
- Es ist ein Master Daemon.
- Verwalten und Verwalten der DataNodes.
- Zeichnet Metadaten auf.
- Empfängt Heartbeat- und Blockberichte von allen DataNodes.
DataNode
- Es ist ein Slave Daemon.
- Hier werden die tatsächlichen Daten gespeichert.
- Bedient Lese- und Schreibanforderungen von den Clients.
Konzentrieren Sie sich einfach auf das Diagramm, wie Sie sehen können, gibt es einen zentralen Computernamenknoten, der verschiedene Datenknoten steuert, die vorhanden sind, d. H. Standardhardware. Der Namensknoten ist also nichts anderes als der Master-Daemon, der den gesamten DataNode verwaltet.
Diese NameNode enthalten alle Informationen zu den Daten, die im DataNode gespeichert sind. DataNode speichert, wie der Name schon sagt, die Daten, die sich im Hadoop-Cluster befinden.
NameNode enthält nur Informationen darüber, welche Daten auf welchem DataNode gespeichert sind. Wir können also sagen, dass NameNode die Metadaten der Daten speichert, die auf den DataNodes gespeichert sind.
DataNode führt auch eine andere Aufgabe aus, d. H. Es sendet regelmäßig den Herzschlag zurück an den NameNode. Herzschläge teilen dem NameNode tatsächlich mit, dass dieser DataNode noch aktiv ist.
Zum Beispiel, DataNodes sendet einen Heartbeat zurück an den NameNode. Auf diese Weise hat NameNode das Bild, dass diese DataNodes aktiv sind, sodass NameNode diese DataNode verwenden kann, um weitere Daten zu speichern oder die Daten von diesen DataNodes zu lesen.
Nun kommen wir zum DataNode. DataNode ist nichts anderes als die Slave-Daemons, die tatsächlich die Daten speichern, die an den Hadoop-Cluster gesendet werden. Diese DataNodes dienen tatsächlich der Lese- und Schreibanforderung, die von den Clients gestellt wird.
Wenn jemand die Daten aus dem Hadoop-Cluster lesen möchte, werden diese Anforderungen tatsächlich von den DataNodes verarbeitet, auf denen sich die Daten befinden.
Hadoop-Cluster-Architektur
Im vorherigen Thema zu NameNode und DataNode haben wir den Begriff verwendet 'Hadoop-Cluster'. Werfen wir einen kurzen Blick darauf, was genau das ist.
Das obige Bild zeigt die Übersicht einer Hadoop-Cluster-Architektur. Hadoop-Cluster ist nichts anderes als eine Master-Slave-Topologie, in der sich eine Master-Maschine befindet, wie Sie oben sehen können, d. H. Hadoop-Cluster. In dieser Master-Maschine gibt es einen NameNode und den Resource Manager, d. H. Die Master-Daemons.
Die Master-Maschine ist über die Core-Switches mit allen Slave-Maschinen verbunden. Dies liegt daran, dass diese DataNodes tatsächlich in verschiedenen Racks gespeichert sind, sodass Sie Computer 1, Computer 2, Computer 3 bis Computer N sehen können. Dies ist nichts anderes als der Slave Maschinen oder die DataNodes und sie sind alle in einem Rack vorhanden.
'Das Rack ist eigentlich eine Gruppe von Maschinen, die physisch an einem bestimmten Ort vorhanden und miteinander verbunden sind.'
Somit ist die Netzwerkbandbreite zwischen jedem Computer so gering wie möglich. In ähnlicher Weise gibt es mehr Racks, diese befinden sich jedoch nicht am selben Ort. Daher können wir eine Anzahl von n Racks und eine Anzahl von DataNodes oder Computern oder Slave-Maschinen in diesen Racks haben.
Auf diese Weise werden die Slave-Maschinen tatsächlich über den Cluster verteilt, während sie gleichzeitig miteinander verbunden sind.
Wie werden Daten in HDFS gespeichert?
Jetzt gehen wir langsam auf die Details ein, wie HDFS insgesamt funktioniert. Hier werden wir die Architektur von HDFS untersuchen.
Wenn wir sagen, dass beim Speichern einer Datei in HDFS die Daten als Blöcke in HDFS gespeichert werden. Die gesamte Datei wird nicht in HDFS gespeichert, da Hadoop bekanntlich ein verteiltes Dateisystem ist.
Wenn Sie also eine Dateigröße von möglicherweise 1 PB (Peta Byte) haben, ist diese Art von Speicher nicht auf einem einzelnen Computer vorhanden, da der Hadoop-Cluster unter Verwendung der Standardhardware erstellt wird. Die Hardware in einer einzelnen Maschine würde etwa 1 TB oder 2 TB betragen.
Daher muss die gesamte Datei in Datenblöcke zerlegt werden, die als HDFS-Blöcke bezeichnet werden.
- Jede Datei wird in HDFS als Blöcke gespeichert.
- Die Standardgröße jedes Blocks beträgt in Apache Hadoop 2.x etwa 128 MB (und in der vorherigen Version 64 MB, d. H. Apache Hadoop 1.x).
- Es gibt eine Möglichkeit, die Dateigröße der Blöcke mithilfe der Konfigurationsdatei, d. H. Hdfssite.xml, die mit dem Hadoop-Paket geliefert wird, zu erhöhen oder zu verringern.
Nehmen wir ein Beispiel, um diesen Mechanismus zu verstehen und zu sehen, wie diese Blöcke erstellt werden.
Betrachten wir hier eine Datei mit 248 MB. Wenn wir diese Datei beschädigen oder in Hadoop Cluster, dh 2.x, verschieben, wird diese Datei in einen Block, dh Block A mit 128 MB, und einen weiteren Block B unterteilt von 120 MB.
Wie Sie sehen können, hat der erste Block 128 MB, dh die allererste Platte schneidet dort ab, und deshalb hat der andere Block 120 MB und nicht 128 MB, dh er verschwendet keinen Speicherplatz, wenn die verbleibende Dateigröße kleiner ist als die Standardblockgröße.
Jetzt haben wir ein weiteres Problem vor uns, d. H. Ist es sicher, eine einzelne Kopie jedes Blocks zu haben?
beste free VPN reddit
Die Antwort lautet NEIN, da die Möglichkeit besteht, dass das System ausfällt und es sich nur um Standardhardware handelt, aufgrund derer wir möglicherweise große Probleme haben. Um dieses Problem zu lösen, hat Hadoop HDFS eine gute Lösung, d.h. 'Die Replikation von Block'.
Blockreplikation der Hadoop-Architektur
Hadoop erstellt die Replikate jedes Blocks, der im verteilten Hadoop-Dateisystem gespeichert wird. Auf diese Weise ist Hadoop ein fehlertolerantes System. Selbst wenn Ihr System ausfällt oder Ihr DataNode ausfällt oder eine Kopie verloren geht, haben Sie mehrere andere Kopien in den anderen DataNodes oder auf den anderen Servern vorhanden, sodass Sie diese Kopien immer von dort auswählen können.
Wie in dem obigen Diagramm zu sehen ist, das die Blockreplikation darstellt, gibt es fünf verschiedene Blöcke einer Datei, d. H. Block 1, 2,3,4,5. Lassen Sie uns zuerst mit Block 1 sprechen, und Sie finden Kopien von Block 1 in Knoten 1, Knoten 2 und Knoten 4.
In ähnlicher Weise hat Block 2 auch drei Kopien, d. H. Knoten 2, Knoten 3 und Knoten 4, und somit dasselbe für Block 3, 4 und 5 in den jeweiligen Knoten.
Abgesehen von den Replikaten, die erstellt werden, wurde jeder Block dreimal repliziert, d. H. Hadoop folgt einem Standardreplikationsfaktor von drei, was bedeutet, dass jede Datei, die Sie in das Hadoop Distribution File System kopieren, dreimal repliziert wird.
Mit anderen Worten, wenn Sie 1 GB einer Datei in das Hadoop Distribution File System kopieren, werden tatsächlich 3 GB einer Datei in HDFS gespeichert. Der gute Teil ist, dass der Standardreplikationsfaktor geändert werden kann, indem Änderungen an den Konfigurationsdateien von Hadoop vorgenommen werden.
Wie entscheidet Hadoop, wo die Replikate gespeichert werden?
Hadoop folgt tatsächlich dem Konzept von Rack Awareness, um zu entscheiden, wo welche Replik eines Blocks gespeichert werden soll.
Das folgende Diagramm zeigt den Rack Awareness-Algorithmus.
Es gibt drei verschiedene Racks, d. H. Rack-1, Rack-2 und Rack-3.
Rack-1 verfügt über vier DataNodes, ebenso wie Rack-2 und Rack-3. Insgesamt besteht der gesamte Hadoop-Cluster aus allen drei Racks und es gibt 12 DataNodes.
Angenommen, Block A wird auf DataNode 1 in Rack-1 kopiert. Gemäß dem Konzept von Rack Awareness kann die Replik von Block A nicht in demselben Rack erstellt werden und muss in einem anderen Rack als Rack-1 als erstellt werden Die Hauptdatei ist bereits in Rack-1 vorhanden.
Wenn wir die Replikate von Block A im selben Rack-1 erstellen und das gesamte Rack-1 ausfällt, gehen die Daten mit Sicherheit verloren. Daher müssen die Replikate in einem anderen Rack gespeichert werden, jedoch nicht in Rack-1.
Das Replikat wird also in DataNode 6 und 8 von Rack-2 erstellt. In ähnlicher Weise werden für Block B und Block C die Replikate in verschiedenen Racks erstellt, wie in der obigen Abbildung gezeigt.
Fazit
Wir haben mit den folgenden Hinweisen aus diesem Tutorial gelernt:
- Hadoop HDFS behebt das Speicherproblem von BigData.
- Hadoop Map Reduce behebt die Probleme im Zusammenhang mit der Verarbeitung der BigData.
- NameNode ist ein Master-Daemon und wird zum Verwalten und Verwalten der DataNodes verwendet.
- DataNode ist ein Slave-Daemon und die eigentlichen Daten werden hier gespeichert. Es dient zum Lesen und Schreiben von Anforderungen von den Clients.
- In Hadoop Cluster ist ein Rack eine Gruppe von Computern, die sich physisch an einem bestimmten Ort befinden und miteinander verbunden sind.
- Jede Datei wird in HDFS als Blöcke gespeichert.
- Die Standardgröße jedes Blocks beträgt ca. 128 MB in Apache Hadoop 2.x (64 MB in der vorherigen Version, d. H. Apache Hadoop 1.x).
- Es gibt eine Möglichkeit, die Dateigröße der Blöcke mithilfe der Konfigurationsdatei, d. H. Hdfssite.xml, die mit dem Hadoop-Paket geliefert wird, zu erhöhen oder zu verringern.
Im nächsten Tutorial zu HDFS lernen wir die HDFS-Architektur und die Lese- und Schreibmechanismen kennen.
=> Besuchen Sie hier, um die BigData-Schulungsreihe für alle zu sehen.
Literatur-Empfehlungen
- Was ist Hadoop? Apache Hadoop Tutorial für Anfänger
- Dateimanipulation unter Unix: Übersicht über das Unix-Dateisystem
- Unix-Sonderzeichen oder Metazeichen für die Dateimanipulation
- Unix-Dateizugriffsberechtigungen: Unix Chmod, Chown und Chgrp
- Ranorex Test Suite, Testmodulerstellung, UserCode-Datei, Xpath und Datenbindung
- VBScript-Dateiobjekte: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File
- Dateieingabe Ausgabevorgänge in C ++
- Java-Bereitstellung: Erstellung und Ausführung einer Java-JAR-Datei