Touge Big Data-Aufgabe 2: Aufbau einer Hadoop-Umgebung und HDFS

Außerschulische Hausaufgabe 2: Hadoop-Umgebung und HDFS einrichten

  • Jobdetails

Inhalt

  • Alibaba Cloud-Yunqi Lab – „Aufbau einer Hadoop-Umgebung“ – Hadoop-2.10.1 pseudoverteilt:

1. Machen Sie in diesem Experiment einen Screenshot der öffentlichen IP-Adresse des ECS und fügen Sie eine farbige Kästchenmarkierung hinzu, wie in der Abbildung unten gezeigt: 2. Schritt 6. Machen Sie nach dem erfolgreichen Start von Hadoop einen Screenshot und fügen Sie eine farbige Kästchenmarkierung hinzu. wie in der Abbildung unten gezeigt.

3. Erstellen Sie einen Ordner im HDFS-Stammverzeichnis (benennen Sie den Ordner: Ihren Namen und die letzten vier Ziffern Ihrer Studentennummer). 4. Erstellen Sie eine Datei unter dem Ordner (benennen Sie die Datei: Ihren Namen und die letzten vier Ziffern Ihrer Studentennummer). number.txt) 5. Laden Sie die Hadoop-Installationsdatei im Stammverzeichnis von ECS in den selbst erstellten Ordner in hdfs hoch. 6. Machen Sie nach erfolgreichem Vorgang einen Screenshot und fügen Sie eine farbige Kästchenmarkierung hinzu, wie in der folgenden Abbildung dargestellt :

  • Huawei Cloud-Koolabs Cloud Experiment-Experiment „HDFS Writing File“ Benennen Sie die heruntergeladene experimentelle Datendatei 000000_0 in Ihren Namen um und fügen Sie die letzten vier Ziffern des Studentenausweises vollständig zusammen. Nachdem Sie das Python-Programm am Ende des Experiments ausgeführt haben, machen Sie einen Screenshot , um den Dateiinhalt anzuzeigen und die Ergebnisse anzuzeigen .
  • Experiment „HDFS-Lesedateien“: Die TXT-Datei check02 im letzten Schritt des Experiments wird in die letzten vier Ziffern Ihres Namens und Ihrer Studentennummer geändert. Machen Sie nach dem Ausführen des Python-Programms einen Screenshot des Ausführungsergebnisses.
  • Beantworten Sie kurz den Inhalt von „Klassenzimmerbewertung“
  1. Welche Modi gibt es für die Hadoop-Installation? In welchem ​​Modus findet dieses Experiment statt? Ist es möglich, andere Modi zu installieren?

Antwort: Es gibt 4 Modi für die Hadoop-Installation: Einzelknotenmodus, pseudoverteilter Modus, vollständig verteilter Modus und Hochverfügbarkeitsmodus.

  1. Warum JDK installieren? Wo ist die Downloadquelle? Um welche Version handelt es sich? Sind andere Versionen verfügbar? Wo ist es installiert?

Antwort: Bevor Sie Hadoop installieren, müssen Sie zuerst JDK installieren. Da Hadoop auf Java basiert, stellt JDK eine Kompilierungsumgebung bereit und der Betrieb von Hadoop hängt von der JDK-Umgebung ab.

  1. Wo ist die Downloadquelle für Hadoop ? Um welche Version handelt es sich? Sind andere Versionen verfügbar? Wo ist es installiert?

Antwort: Die Download-Quelle für Hadoop ist die offizielle Apache-Website. Die neueste Version ist Hadoop 2.7. Andere Versionen sind ebenfalls verfügbar, es wird jedoch empfohlen, die neueste Version zu verwenden. Hadoop wird auf einer Maschine installiert, bei der es sich um eine physische Maschine oder eine virtuelle Maschine handeln kann, auf der das Netzwerk und die Benutzerumgebung ordnungsgemäß installiert und konfiguriert sind.

  1. Was sind die Unterschiede zwischen der Installation von JDK und Hadoop unter Linux und der Installation unter Windows?

Antwort: Die Installation von JDK und Hadoop unter Linux ähnelt der Installation unter Windows, mit der Ausnahme, dass Windows eine GUI-Schnittstelle verwendet, während Linux eine Befehlszeilenschnittstelle verwendet.

  1. Wofür werden die Umgebungsvariablenkonfigurationen von JDK und Hadoop verwendet? Um welche Dateien handelt es sich? Warum benötigen Sie nach der Konfiguration eine Quelle?

Antwort: Die Umgebungsvariablen von JDK und Hadoop müssen in der .bashrc-Datei konfiguriert werden. JDK muss mit JAVA_HOME konfiguriert werden, und Hadoop muss mit HADOOP_HOME, HADOOP_PREFIX usw. konfiguriert werden. Die Konfiguration dieser Umgebungsvariablen ermöglicht es Benutzern, Hadoop aufzurufen Befehle aus einem beliebigen Verzeichnis abrufen und ausführen. Programm. Die Quelle wird verwendet, damit die neu konfigurierten Umgebungsvariablen wirksam werden. Dadurch wird eine neue Shell gestartet. In der neuen Shell verwenden die Umgebungsvariablen die neue Konfiguration.

  1. Welche Dateien sollten für die Hadoop -Pseudoverteilung konfiguriert werden? Was sind die Funktionen?

Antwort: Für die Hadoop-Pseudoverteilung sind die folgenden drei Dateien erforderlich: core-site.xml, hdfs-site.xml und mapred-site.xml. core-site.xml wird hauptsächlich zum Konfigurieren der globalen Eigenschaften von Hadoop verwendet, z. B. Hadoop-spezifische Konfigurationen; hdfs-site.xml wird hauptsächlich zum Konfigurieren von HDFS-Optionen wie HDFS-Namespace und Speicherblockgröße verwendet; mapred-site.xml wird hauptsächlich zum Konfigurieren von Optionen zum Konfigurieren von MapReduce verwendet, z. B. der Portnummer von JobTracker oder dem zugehörigen Pfad des MapReduce-Programms.

  1. Was bedeutet passwortfreies Login? Warum eine passwortfreie Anmeldung konfigurieren?

Antwort: Die passwortfreie Anmeldung bedeutet, dass Sie sich bei einem Remote-Linux-System anmelden können, ohne einen Benutzernamen und ein Passwort einzugeben, wodurch die Sicherheit und der Komfort der SSH-Remote-Anmeldung verbessert werden. Um die passwortfreie Anmeldung zu konfigurieren, müssen Sie ssh-keygen auf dem Client bzw. Server installieren, den öffentlichen Schlüssel und den privaten Schlüssel auf den beiden Computern generieren und dann den öffentlichen Schlüssel kopieren, um eine passwortfreie Anmeldung zu erreichen.

  1. Welche Knoten sind nach dem Start von Hadoop sichtbar? Was machen Sie?

Antwort: Nach dem Start von Hadoop können Sie den NameNode-Knoten, den DataNode-Knoten und den SecondaryNameNode-Knoten sehen. NameNode ist der Verwaltungsknoten von HDFS, der zum Aufzeichnen von Metadateninformationen des Dateisystems verwendet wird; DataNode-Knoten sind Knoten, die Daten speichern, und sie speichern von Benutzern hochgeladene Daten; SecondaryNameNode-Knoten ist für die Sicherungsarbeit von NameNode verantwortlich, einem Hilfsknoten Wird zum Speichern einer In-Memory-Image-Kopie der NameNode-Site für eine bessere Fehlertoleranz verwendet.

  1. Wofür werden die beiden Webseiten von Hadoop verwendet?

Antwort: Hadoop verfügt über zwei Webseiten, nämlich die NameNode-Web-Benutzeroberfläche und die JobTracker-Web-Benutzeroberfläche. Die NameNode-Web-Benutzeroberfläche wird verwendet, um das Dateisystem anzuzeigen, die Knoten im Cluster anzuzeigen und die im Dateisystem gespeicherten Daten zu verwalten; während die JobTracker-Web-Benutzeroberfläche verwendet wird, um den Status und die Informationen der Aufgabe anzuzeigen, um die Überwachung der Ausführung zu erleichtern der Aufgabe.

  1. Was ist der Unterschied zwischen dem experimentellen Desktop-Dateisystem und dem ECS-Dateisystem? In welches Dateisystem lädt der Browser Dateien herunter? Wie übertrage ich Dateien zwischen den beiden?

Antwort: Der Unterschied zwischen dem experimentellen Desktop-Dateisystem und dem ECS-Dateisystem besteht darin, dass sich das experimentelle Desktop-Dateisystem auf das lokale Dateisystem in der experimentellen Desktop-Umgebung bezieht, das auf der lokalen Festplatte gespeichert ist, während sich das ECS-Dateisystem darauf bezieht das Dateisystem in der EMR-Instanz, verwaltet vom verteilten Hadoop-Dateisystem HDFS, das auf der Festplatte der Instanz gespeichert ist. Die Browser-Downloaddatei wird in das experimentelle Desktop-Dateisystem heruntergeladen. Dateien können zwischen beiden über das FTP-Dateiübertragungsprotokoll oder das sichere SCP-Dateiübertragungsprotokoll übertragen werden.

  1. Was ist der Unterschied zwischen HDFS- Dateisystem und lokalem Dateisystem?

Antwort: Der Unterschied zwischen HDFS-Dateisystem und lokalem Dateisystem besteht darin, dass HDFS ein verteiltes Dateisystem ist, das große Kapazität, hohen Durchsatz und Zuverlässigkeit unterstützen kann, während das lokale Dateisystem eher einem eigenständigen Dateisystem mit Speicherkapazität und Durchsatz ähnelt ist niedriger als HDFS.

  1. Was ist der Unterschied zwischen Hadoop- Befehlen und Linux-Befehlen?

Antwort: Im Vergleich zu Linux-Befehlen sind Hadoop-Befehle umfangreicher und können mehr Vorgänge ausführen, während Linux-Befehle nur grundlegende Vorgänge ausführen können, z. B. das Anzeigen von Verzeichnissen, das Erstellen von Dateien und das Ausführen einiger einfacher Befehle.

  1. Wie erstelle ich Dateien und Ordner auf HDFS ? Wie zu überprüfen?

Antwort: Um Dateien und Ordner auf HDFS zu erstellen, können Sie den Befehl hadoop fs -mkdir verwenden, um Ordner zu erstellen, und den Befehl hadoop fs -put verwenden, um Dateien auf HDFS hochzuladen. Um Dateien und Ordner anzuzeigen, können Sie den Befehl hadoop fs - verwenden. ls-Befehl zum Anzeigen der Dateien auf HDFS. Dateien und Ordner.

  1. Wie lade ich Dateien von HDFS auf lokal herunter? Wie lautet die Reihenfolge? Prinzip kurz beschreiben? Was sind die wichtigsten Java-Eingabe- und Ausgabeströme und -methoden?

Antwort: Der Befehl zum Herunterladen von Dateien von HDFS auf das lokale System lautet hadoop fs -get. Das Prinzip besteht darin, die Java-API von Hadoop aufzurufen, um die Dateien im Remote-Dateisystem abzurufen. Die wichtigsten Eingabe- und Ausgabeströme und -methoden bestehen darin, die Datei von HDFS in den InputStream zu lesen und die Datei in den lokalen OutputStream zu schreiben, um den Download der Datei zu realisieren.

  1. Wie lade ich lokale Dateien in HDFS hoch? Wie lautet die Reihenfolge? Prinzip kurz beschreiben? Was sind die wichtigsten Java-Eingabe- und Ausgabeströme und -funktionen?

Antwort: Der Befehl zum Hochladen lokaler Dateien in HDFS lautet hadoop fs -put. Das Prinzip besteht darin, die Java-API von Hadoop aufzurufen, um Dateien in das Remote-Dateisystem hochzuladen. Die wichtigsten Eingabe- und Ausgabeströme und -methoden bestehen darin, Dateien aus dem lokalen InputStream zu lesen und die Dateien in den OutputStream von HDFS zu schreiben, um einen Datei-Upload zu erreichen.

  1. Welche Funktion verwendet Python im Experiment „HDFS Writing Files“, um in HDFS zu schreiben? Wo wurde es geschrieben?

Antwort: Im Experiment „HDFS Writing Files“ ist die von Python zum Schreiben in HDFS verwendete Funktion hdfs3.HDFile, mit der Dateien in HDFS geschrieben werden.

  1. Welche Funktion verwendet Python im Experiment „HDFS-Lesedateien“, um einen HDFS-Eingabestream zu erstellen? Wo werden die Dateiinhalte aus der HDFS-Ausgabe gelesen?

Antwort: Im Experiment „HDFS-Lesedateien“ lautet die Funktion von Python zum Erstellen des HDFS-Eingabestreams hdfs3.HDFile, und der aus HDFS gelesene Dateiinhalt wird an das HDFile-Objekt ausgegeben.

  • Übung
  1. Beschreiben Sie die Beziehung zwischen Hadoop und Googles MapReduce, GFS und anderen Technologien.

Antwort: Hadoop ist eine Open-Source-Implementierung der MapReduce- und GFS-Technologien (Distributed File System) von Google. Hadoop implementiert die verteilte Speicher- und Computerarchitektur von Google.

  1. Beschreiben Sie die Eigenschaften von Hadoop.

Antwort: Hadoop zeichnet sich durch hohe Skalierbarkeit, hohe Fehlertoleranz und effizientes Kapazitätsmanagement aus.

  1. Lassen Sie uns die Anwendung von Hadoop in verschiedenen Bereichen diskutieren.

Antwort: Hadoop wird derzeit in vielen Bereichen wie Wirtschaft, Finanzen, medizinische Versorgung und Bildung häufig eingesetzt. Es kann die Datenverarbeitungszeit und -kosten erheblich reduzieren, Arbeitskosten sparen, den Datenverarbeitungsgrad von Unternehmen verbessern und seinen Wert freisetzen.

  1. Beschreiben Sie das Hadoop-Ökosystem und die spezifischen Funktionen jedes Teils.

Antwort: Das Hadoop-Ökosystem umfasst HDFS (verteiltes Dateisystem), MapReduce (verteiltes Computer-Framework), YARN (Cluster-Ressourcen-Manager), Hive (Data Warehouse), HBase (verteilte NoSQL-Datenbank), ZooKeeper (Koordinierungsdienst) usw. , Ihre Zu den Funktionen gehören: Bereitstellung eines hochzuverlässigen Speichersystems, Implementierung eines Computer-Frameworks, Verwaltung von Cluster-Ressourcen, Bereitstellung eines Data Warehouse, Bereitstellung einer verteilten NoSQL-Datenbank und Koordinierung der Kommunikation zwischen Knoten im Cluster.

  1. In welcher Konfigurationsdatei ist bei der Konfiguration von Hadoop der Java-Pfad JAVAHOME festgelegt?

Antwort: Der Pfad JAVAHOME von Java wird in der Konfigurationsdatei hadoop-env.sh festgelegt.

  1. Alle HDFS-Pfade werden über fs.default.name festgelegt. In welcher Konfigurationsdatei wird es festgelegt?

Antwort: Alle HDFS-Pfade werden in core-site.xml über fs.default.name festgelegt.

  1. Versuchen Sie, die Gemeinsamkeiten und Unterschiede zwischen dem eigenständigen Modus und dem pseudoverteilten Modus aufzulisten.

Antwort: Die Ähnlichkeiten und Unterschiede zwischen dem Standalone-Modus und dem pseudoverteilten Modus: Es handelt sich bei beiden um Hadoop-Rechenmodelle, in denen das von Hadoop bereitgestellte MapReduce-Rechenframework verwendet werden kann; beide können das von Hadoop bereitgestellte verteilte Speichersystem HDFS verwenden zum Speichern großer Datenmengen; Unterschiede: Der eigenständige Modus erfordert nur eine Maschine, während der pseudoverteilte Modus mindestens zwei Maschinen erfordert und zwischen den beiden Maschinen ausreichende Netzwerkverbindungen vorhanden sein müssen, um sicherzustellen, dass Daten und Aufgaben normal übertragen werden können ; im Standalone-Modus verwaltet es einen HDFS-Cluster und einen MapReduce-Cluster und im Pseudoverteilungsmodus verwaltet es einen HDFS-Cluster und mehrere MapReduce-Cluster; der Standalone-Modus unterstützt nur MapReduce-Jobs auf einem einzelnen Computer Der Pseudoverteilungsmodus unterstützt die Verteilung von Daten auf mehrere Maschinen. MapReduce-Job: Der Einzelmaschinenmodus kann nur die Ressourcen einer einzelnen Maschine zum Verarbeiten von Daten verwenden, während der Pseudoverteilungsmodus die Ressourcen mehrerer Maschinen zum Verarbeiten von Daten verwenden kann , wodurch eine bessere Leistung erzielt wird.

  1. Welche Prozesse hat Hadoop nach dem Start des pseudoverteilten Vorgangs?

Antwort: Die Prozesse, die Hadoop nach dem Start des pseudoverteilten Vorgangs hat, sind: NameNode-Prozess, SecondaryNameNode-Prozess, DataNode-Prozess, ResourceManager-Prozess, NodeManager-Prozess und JobHistoryServer-Prozess.

  1. Wenn Sie über die Voraussetzungen für ein Cluster-Experiment verfügen, versuchen Sie bitte, eine vollständig verteilte Hadoop-Cluster-Umgebung gemäß der offiziellen Hadoop-Dokumentation aufzubauen.
  • Übung
  1. Beschreiben Sie die Anforderungen für das Design verteilter Dateisysteme.

Antwort: Es muss in der Lage sein, verschiedene Arten von Dateisystemen zu verwenden, mehrere Arten von Lese- und Schreibvorgängen für Dateien zu unterstützen, das System muss einfach zu erweitern und zu warten sein, über einen Wiederherstellungsmechanismus für Speicherknotenfehler verfügen, die Berechtigungsverwaltung unterstützen und mehrere unterstützen Netzwerkprotokolle. Dabei muss die Sicherheit bis zu einem gewissen Grad gewährleistet sein und die Übertragung von Festplatten- und Netzwerkdateien muss unterstützt werden.

  1. Wie erreicht ein verteiltes Dateisystem eine höhere Erweiterungsebene?

Antwort: Die verteilte Speichertechnologie wird zum dezentralen Speichern von Daten verwendet. Das verteilte Dateisystem verwendet mehrere Datenserver, um eine horizontale Erweiterung zu erreichen und Daten gleichzeitig auf mehrere Datenserver zu verteilen, wodurch die Flexibilität des Servers erhöht und die Speichereffizienz verbessert wird. Darüber hinaus kann das verteilte Dateisystem durch verteilte Caching-Technologie und Netzwerklastausgleichstechnologie auch eine horizontale Erweiterung erreichen.

  1. Beschreiben Sie den Unterschied zwischen Blöcken in HDFS und Blöcken in gewöhnlichen Dateisystemen.

Antwort: Blöcke in HDFS: Der Speicherblock von HDFS beträgt 64 MB, was die interne Speichereinheit von HDFS darstellt. Alle Dateien müssen in 64 MB-Speicherblöcke unterteilt werden, um eine Datenreplikation und -speicherung zu erreichen. Blöcke in gewöhnlichen Dateisystemen: Blöcke stellen die kleinsten Lese-/Schreibeinheiten von Dateisystemen dar. Im Allgemeinen ist die Größe der Speicherblöcke in gewöhnlichen Dateisystemen kleiner als die von HDFS, im Allgemeinen zwischen 4 KB und 8 KB.

  1. Beschreiben Sie die spezifischen Funktionen von Namensknoten und Datenknoten in HDFS.

Antwort: Der Namensknoten in HDFS ist der Kern des gesamten Clusters. Er speichert die Metadaten aller Dateien, ist für die Verwaltung von Metadatenaktualisierungen und -abfragen sowie für die Dateizugriffskontrolle und die Zuordnung und Verwaltung verantwortlich von Datenblöcken, die es Knoten ermöglichen, Daten hoch- und herunterzuladen, ist für das Kopieren und Überprüfen von Datenblöcken verantwortlich, ist außerdem für die Überwachung und Verwaltung des gesamten HDFS-Dateisystems verantwortlich und kann den Betriebsstatus des gesamten HDFS überwachen. Der HDFS-Datenknoten ist dafür verantwortlich, die Lese- und Schreibanforderungen des Clients zu verarbeiten, die vom Client gesendeten Dateien in Speicherblöcke aufzuteilen, die Daten in jedem Speicherblock lokal zu speichern und diese Speicherblöcke in mehrere durch den Namensknoten angegebene Speicherblöcke zu kopieren. Datenknoten für redundante Speicherung. Der Datenknoten ist auch für die Überprüfung der lokal gespeicherten Speicherblöcke verantwortlich. Wenn ein beschädigter Speicherblock gefunden wird, wird er als ungültig markiert und vom lokalen Knoten erneut kopiert.

  1. In einem verteilten Dateisystem ist das Design des zentralen Knotens von entscheidender Bedeutung. Bitte erläutern Sie, wie HDFS die Belastung des zentralen Knotens verringert.

Antwort: HDFS verwendet ein Client/Server-Modell. Sein Client kann Namensknoteninformationen abfragen und Datenknoteninformationen vom Namensknoten abrufen, wodurch die Belastung des zentralen Knotens verringert wird. Darüber hinaus gibt es einige Möglichkeiten, die Belastung des Namensknotens zu verringern: Wenn ein Fehlerknoten vorliegt, auf den nicht zugegriffen werden kann, kann der Knotenmanager den Status des Datenknotens asynchron von einem entfernten Standort aus überprüfen, wodurch die Belastung des Namensknotens verringert werden kann .

  1. HDFS richtet nur einen eindeutigen Namensknoten ein, was das Systemdesign vereinfacht, aber auch einige offensichtliche Einschränkungen mit sich bringt. Bitte erläutern Sie die spezifischen Aspekte der Einschränkungen.

Antwort: Erstens ist seine Verfügbarkeit begrenzt, da es nur einen Namensknoten gibt. Wenn der Namensknoten ausfällt, funktioniert das gesamte System nicht. Zweitens speichert der Namensknoten die Metadaten aller Dateien im Cluster, sodass seine Verarbeitungslast geringer ist schwer und in der Folge Da das Dateisystem weiter wächst, können die Verarbeitungsfähigkeiten des Namensknotens eingeschränkt sein.

  1. Beschreiben Sie die redundante Datenspeicherstrategie von HDFS.

Antwort: Die redundante Datenspeicherstrategie von HDFS besteht darin, einen Datenblock auf mehrere Datenknoten zu kopieren, standardmäßig mit drei Kopien. Auf diese Weise können wir Daten von anderen Knoten wiederherstellen, selbst wenn ein Knoten ausfällt, und dies Die Aufbewahrungsstrategie kann Reduzieren Sie effektiv den Single Point of Failure des Systems.

  1. Die Datenreplikation muss während des Datenschreibens und der Datenwiederherstellung erfolgen. Die HDFS-Datenreplikation verwendet eine Pipeline-Replikationsstrategie. Bitte erläutern Sie die Details dieser Strategie.

Antwort: Die HDFS-Datenreplikation verwendet eine Pipeline-Replikationsstrategie, die sich auf das Kopieren eines Datenelements (einer Datei) auf eine Reihe bekannter DataNode-Knoten bezieht. Der Standardreplikationsfaktor ist 3, d. h. jede Datenkopie wird auf 3 DataNode-Knoten geschrieben. HDFS teilt diese Daten nacheinander in mehrere Blöcke auf, schreibt diese Blöcke separat auf den DataNode-Knoten und beginnt sofort mit dem Schreiben des nächsten Blocks, bis alle Blöcke geschrieben wurden. Dies kann die Übertragungseffizienz der Datenreplikation erheblich verbessern und die Netzwerkbandbreite effektiv für die Übertragung großer Datenmengen nutzen.

  1. Beschreiben Sie, wie HDFS Fehler erkennt und wie eine Wiederherstellung durchgeführt wird.

Antwort: HDFS verwendet den Heartbeat-Mechanismus und den Blockreport-Mechanismus, um Fehler auf Datenknoten zu erkennen. Wenn der NameNode die Heartbeat-Informationen vom DataNode empfängt, bedeutet dies, dass der Block auf dem DataNode-Knoten nicht fehlgeschlagen ist; und wenn der NameNode die Heartbeat-Informationen nicht empfängt Heartbeat-Informationen aus DataNode Heartbeat-Informationen: NameNode geht davon aus, dass DataNode ausgefallen ist, und gibt dann einen Wiederherstellungsbefehl aus, um die beschädigten Daten wiederherzustellen.

  1. Bitte erläutern Sie den Prozess des fehlerfreien Lesens von Dateien durch HDFS.

Antwort: Zuerst initiiert der Client eine Datenleseanforderung an den NameNode. Nachdem der NameNode diese empfangen hat, gibt er den DataNode-Knoten zurück, auf dem sich die Daten befinden. Nachdem der NameNode die Verbindung hergestellt hat, ruft der Client den Datenblock vom DataNode ab Bis der Abruf abgeschlossen ist, ruft der Client ab Die abgerufenen Daten überprüfen auch die Integrität der Daten. Wenn festgestellt wird, dass die Daten unvollständig sind, fordert der Client erneut neue Datenblöcke vom NameNode an, bis die gültigen Datenblöcke erfolgreich abgerufen wurden , und schließlich werden die mehreren Datenblöcke abgerufen und in einem Dokument zusammengefasst.

  1. Bitte erläutern Sie den Prozess, mit dem HDFS Dateien fehlerfrei schreibt.

Antwort: Zuerst initiiert der Client eine Anforderung zum Schreiben einer Datei an den NameNode. Nachdem der NameNode diese empfangen hat, antwortet er auf mehrere verfügbare DataNode-Knoten. Nachdem der NameNode die Verbindung hergestellt hat, teilt der Client die Datei in Blöcke auf und kopiert jeden Teil davon Daten und in jedem Schreiben an den DataNode-Knoten, bis alle Blöcke geschrieben sind und das Schreiben abgeschlossen ist; dann sendet der Client ein Signal an den NameNode, um zu bestätigen, dass das Schreiben abgeschlossen ist, und der NameNode zeichnet den Speicherort der Datei auf und Dateiinhaltsblöcke in den Metadaten nach dem Empfang.

  • Übung
  1. Lassen Sie uns über die beiden Hauptaspekte der Optimierung und Entwicklung von Hadoop nach seiner Einführung sprechen.

Antwort: Hadoop-Optimierung und -Entwicklung spiegeln sich hauptsächlich in den folgenden zwei Aspekten wider: 1. Architekturoptimierung: Im Entwicklungsprozess der Hadoop-Architektur, von der Einzelpunktarchitektur der Originalversion von HDFS bis zur HDFS-HA-Architektur, ergeben sich die Vorteile Die Mehrpunktarchitektur kann den Namen Single Point of Failure des Knotens effektiv lindern; die Entwicklung von der Einzelpunktarchitektur von MapReduce1.0 zur Mehrpunktarchitektur von MapReduce2.0 und YARN. Die Mehrpunktarchitektur kann effektiv Reduzieren Sie die Ressourcenbelegung und verbessern Sie die Skalierbarkeit und Erweiterbarkeit des Systems. 2. Systemoptimierung: Hadoop optimiert außerdem ständig interne Planungsstrategien wie HDFS, MapReduce, Spark usw., um eine schnellere und effizientere Ausführung von Aufgaben zu erreichen, weniger Ressourcen zu verbrauchen und auf einen größeren Maßstab erweitert werden zu können.

  1. Lassen Sie uns die Probleme diskutieren, die durch die Aufnahme nur eines Namensknotens in HDFS1.0 entstehen.

Antwort: 1. Single Point of Failure: Es gibt nur einen Namensknoten. Sobald ein Fehler auftritt, kann das gesamte System möglicherweise nicht mehr normal funktionieren und es können sogar Probleme wie Datenverlust auftreten. 2. Geringe Ressourcenauslastung: Aufgrund der Single-Point-Architektur können Systemressourcen nicht effektiv genutzt werden, wodurch das gesamte System ineffizient arbeitet.

  1. Bitte beschreiben Sie die Komponenten der HA-Architektur von HDFS und ihre spezifischen Funktionen.

Antwort: 1. NameNode-Dienst: Verantwortlich für die Datenzugriffskontrolle, z. B. die Lese- und Schreibkontrolle von Dateien durch den Benutzer und den Speicherort von Datenblöcken. 2. DataNode-Dienst: Verantwortlich für die eigentliche Datenverarbeitung und -speicherung sowie für Heartbeat-Berichte usw. 3. JournalNode-Dienst: Verantwortlich für die Speicherung des aktiven NameNode-Status auf einem oder mehreren Servern und die Synchronisierung von Vorgängen zwischen NameNodes.

  1. Bitte analysieren Sie, wie Datenknoten die Kommunikation mit Namensknoten in der HA-Architektur von HDFS aufrechterhalten.

Antwort: In der HA-Architektur von HDFS wird ein bestimmtes Protokoll für die Kommunikation zwischen dem Datenknoten und dem Namensknoten verwendet. Beispielsweise verwendet der DataNode Heartbeat, um zu bestätigen, ob der aktuelle Prozess aktiv ist, und der Namensknoten verwendet die Netzwerkübertragung Technologie zum Hochladen von Datenblöcken und Metadaten. Dateninformationen werden an Datenknoten übergeben.

  1. Bitte erläutern Sie, warum ein HDFS-Verbund erforderlich ist und welche Probleme er lösen kann.

Antwort: HDFS-Föderation ist eine verteilte Architektur für HDFS-Dienste, die aus mehreren unabhängigen NameNodes und DataNodes besteht. Es kann das Risiko von Single Points of Failure effektiv reduzieren und gleichzeitig den Benutzern mehr verfügbaren Speicherplatz bieten, wodurch die Skalierbarkeit des Systems und die Skalierbarkeit zur Erfüllung der Benutzeranforderungen verbessert werden.

  1. Beschreiben Sie bitte das Konzept des „Blockpools“ in der HDFS-Föderation und analysieren Sie, warum der Ausfall eines Namensknotens in der HDFS-Föderation keine Auswirkungen auf die damit verbundenen Datenknoten hat und weiterhin Dienste für andere Namensknoten bereitstellt.

Antwort: Der „Blockpool“ im HDFS-Verbund bezieht sich auf die maximale Anzahl von Datenblöcken, die jeder Datenknoten speichern kann. Seine Funktion besteht darin, den Speicherplatz von Datenblöcken besser zu verwalten. Er kann je nach Größe für unterschiedliche Größen konfiguriert werden Der Blockpool. Der DataNode weist unterschiedlichen Speicherplatz für Datenblöcke zu. Wenn ein NameNode ausfällt, kann der zugehörige DataNode weiterhin Dienste für andere NameNodes bereitstellen, wodurch das gesamte System höher verfügbar wird.

  1. Bitte erläutern Sie die in der MapReduce1.0-Architektur bestehenden Probleme.

Antwort: 1. Geringe Ressourcenauslastung: MapReduce1.0 verfügt über keine redundanten Ressourcen, sodass die Ressourcenauslastung nicht hoch ist und länger dauert. 2. Begrenzte Skalierung: Die Single-Point-Architektur ist begrenzt, und die MapReduce1.0-Architektur ist begrenzt . Kann nicht erweitert werden und ist weiterhin eingeschränkt; 3. Unfreundlicher Garbage-Collection-Mechanismus: MapReduce 1.0 verfügt nicht über einen guten Garbage-Collection-Mechanismus, was zu Ressourcenverschwendung, Systemabstürzen und anderen Problemen führt.

  1. Bitte beschreiben Sie die Funktionen jeder Komponente in der YARN-Architektur.

Antwort: 1. ResourceManager: Verantwortlich für die Verwaltung von Clusterressourcen, die Planung von Anwendungen und die Aktualisierung des Status in Echtzeit. 2. NodeManager: Verantwortlich für die Verwaltung und Überwachung der Knotenressourcen, einschließlich Speicher, Festplatte und Netzwerk. 3. ApplicationMaster: Verantwortlich für die Verwaltung der Knotenressourcenzuweisung und -planung und Bereitstellung einer Abstraktionsschicht für die Ressourcenverwaltung

  1. Bitte beschreiben Sie die spezifischen Schritte von der Einreichung bis zur Fertigstellung, wenn Sie ein MapReduce-Programm im YARN-Framework ausführen.

Antwort: 1. Der Benutzer sendet das MapReduce-Programm an ResourceManager. 2. ResourceManager weist den Job ApplicationMaster zu. 3. ApplicationMaster ruft das Jar-Paket des Programms ab und teilt es entsprechend der Aufgabe in mehrere Unteraufgaben auf. 4. ApplicationMaster initiiert eine Anfrage an NodeManager, um Ressourcen zu beantragen. 5. NodeManager ruft das Programm Jar ab und startet die Aufgabe. 6. Nachdem jede Aufgabe abgeschlossen ist, benachrichtigt ApplicationMaster ResourceManager, dass die Aufgabe abgeschlossen ist

  1. Bitte führen Sie eine vergleichende Analyse der Vor- und Nachteile der Frameworks YARN und MapReduce1.0 durch.

Antwort: Vorteile: 1. YARN verfügt über eine größere horizontale Skalierbarkeit und kann den Betrieb von mehr Knoten unterstützen und mehr Jobs verarbeiten. 2. Das Ressourcenmanagement von YARN ist flexibler und kann Systemressourcen besser nutzen. 3. YARN kann mehr Programmiermodelle wie Tez, Spark, Kafka usw. unterstützen. Nachteile: 1. Das YARN-Framework ist hinsichtlich der Ressourcenzuweisung und -planung komplexer als das MapReduce1.0-Framework. 2. Die Betriebseffizienz und Leistung des YARN-Frameworks sind geringer als die des MapReduce1.0-Frameworks.

  1. Bitte beschreiben Sie die Funktionen von Pig Tez bzw. Kafka. Antwort: 1. Pig Tez: Pig Tez ist ein Mechanismus zur Beschleunigung der Pig-Datenverarbeitung. Es kann die Architektur von Apache Tez nutzen, um einen Aufgabengraphen zu erstellen, der mehrere Jobs miteinander kombinieren und zum Kombinieren einiger leichter Jobs verwendet werden kann. Verknüpfen; 2. Kafka: Kafka ist ein verteiltes Publish-Subscribe-Messaging-System. Durch die Aufrechterhaltung eines Clusters mit großer Kapazität kann es Millionen von Nachrichtenabonnements unterstützen, einen hohen Durchsatz und eine geringe Latenz unterstützen und in großem Maßstab verwendet werden. Datenerfassung, Aggregation und wird bearbeitet;

Guess you like

Origin blog.csdn.net/qq_50530107/article/details/131260866