Big Data: 01 Detaillierte Installation und Bedienung von Hadoop unter MacOS

Verzeichnis

Installation und Betrieb von Hadoop

1. Die vom Autor verwendete Umgebung

2. Von der Installation bis zum Betrieb

2.1 Legen Sie die SSH-Anmeldeberechtigungen fest

2.2 Installieren Sie die JAVA-Umgebung

2.3 Hadoop installieren

2.4 Führen Sie eine pseudoverteilte Konfiguration durch

2.5 Starten Sie den pseudoverteilten Hadoop

2.6 Handhabung WARNUNG

2.7 Ausführen von pseudoverteilten Hadoop-Instanzen


Installation und Betrieb von Hadoop

  Die Hadoop-Installation ist grob in 5 Schritte unterteilt:

  1. Erstellen Sie einen Hadoop-Benutzer (Mac-Benutzer sollten ihre eigenen Benutzer verwenden. Dieser Schritt wird weggelassen, um keine unnötigen Probleme zu verursachen.)

  2. Legen Sie die SSH-Anmeldeberechtigungen fest

  3. Installieren Sie die JAVA-Umgebung

  4. Eigenständige Installation und Konfiguration

  5. Pseudo-verteilte Installationskonfiguration

1. Die vom Autor verwendete Umgebung

macOS 10.14.6

 

2. Von der Installation bis zum Betrieb

2.1 Legen Sie die SSH-Anmeldeberechtigungen fest

SSH ist die Abkürzung für Secure Shell , ein Sicherheitsprotokoll, das auf der Anwendungsschicht und der Transportschicht basiert. SSH ist so konfiguriert, dass die kennwortlose Anmeldung aktiviert wird . Bei der Verwendung des Hadoop-Clusters müssen Sie kontinuierlich auf jeden NameNode zugreifen. Verwandte Prozesse auf dem NameNode müssen kontinuierlich auf die Dämonen auf anderen Knoten zugreifen, um miteinander zu kommunizieren. Für andere Computer muss eine kennwortlose SSH-Anmeldemethode festgelegt werden.

Zuerst gehen Sie zu Einstellungen -> Gemeinsame Nutzung der Remote - Login überprüfen, und ermöglicht allen Benutzern den Zugriff.

Öffnen Sie dann das Terminal, geben Sie ssh localhost ein und geben Sie das Kennwort ein. Sie können ssh erfolgreich ausführen.

 

2.2 Installieren Sie die JAVA-Umgebung

Hadoop ist ein in Java entwickeltes Open Source-Framework , mit dem ein einfaches Programmiermodell Big Data in einer verteilten Umgebung über Computercluster hinweg speichern und verarbeiten kann. Daher müssen wir die Java-Umgebung vorbereiten.

Öffnen Sie zuerst das Terminal und geben Sie  Java-Version ein , um die aktuelle Java-Version anzuzeigen . Macs in den letzten Jahren sollten Java integriert haben, aber es ist möglich, dass die Version niedriger ist und die niedrigere Version die Installation von Hadoop beeinflusst. Wenn die Version zu niedrig ist, gehen Sie Die offizielle Website von Oracle zum Herunterladen und Installieren des neuesten Java.

Wenn die  Java-Version dazu auffordert, dass kein Java vorhanden ist, gehen Sie zur Installation auf die offizielle Website.

Angehängte URL: Offizielle Oracle-Website zum Herunterladen von Java zur Installation von dmg

Nach Abschluss der Installation konfigurieren wir die JAVA-Umgebungsvariablen. Das JDK wird im Verzeichnis / Library / Java / JavaVirtualMachines installiert . In diesem Verzeichnis befinden sich möglicherweise mehrere JDK-Versionen. Wir können die entsprechende (neue) Version in die Umgebungsvariable schreiben .

Geben Sie im Terminal vim ~ / .bash_profile ein , um den Java-Pfad zu konfigurieren. Unter diesen stellt "~" das Stammverzeichnis des aktuellen Benutzers dar; der vollständige Name von bash in der Datei ".bash_profile" lautet Bourne-Again Shell, eine Erweiterung der Shell. Wie der Name schon sagt, ist ".bash_profile" die Bash-Konfigurationsdatei.

Verwenden Sie nach dem Öffnen der Datei mit vim die englische Eingabemethode, um zufällig einen Buchstaben einzugeben und den Einfügemodus für die Eingabe zu öffnen. Dann verwenden wir das Schlüsselwort export, um die Umgebungsvariablen zu ändern, und geben export JAVA_HOME = "/ Library / Java / JavaVirtualMachines / Ihre ausgewählte JDK-Version. Jdk / Contents / Home" -Anweisung in die leere Zeile ein . Achten Sie auf den Pfad zur Home- Ebene. Drücken Sie dann die ESC-Taste, um den Befehlsbearbeitungsmodus von vim unter der englischen Eingabemethode aufzurufen. Geben Sie dann Folgendes ein : wq zum Schreiben und Beenden.

Führen Sie dann source.bash_profile aus, damit die Konfigurationsdatei wirksam wird. Geben Sie dann Java-Version in das Terminal ein   , Sie können die Java-Version sehen.

Beachten Sie, dass der Eingangsanschluss in welchem die Java , Java , den Empfang Informationsanzeige befindet sich sehen usr / bin / Java , in der Tat, es ist ein Ersatz - Datei, der tatsächliche Punkt / Library / Java / JavaVirtualMachines / die JDK - Version .jdk / Contents / Home / bin / Java .

 

2.3 Hadoop installieren

Hier verwenden wir den Homebrew-Paketmanager, um die neueste Version von hadoop zu installieren. Die Installation von Homebrew finden Sie auf der offiziellen Website. Es ist sehr einfach, ein Code-Satz im Terminal, aber achten Sie auf die Netzwerkumgebung und müssen möglicherweise über die Mauer.

Fügen Sie die offizielle Website-Adresse hinzu: Homebrew offizielle Website

Nach Abschluss der Installation geben wir Brew Terminal Hadoop in das Terminal ein , um den neuesten Hadoop zu installieren. Beachten Sie, dass sich Brew selbst aktualisiert, wenn es zum ersten Mal verwendet wird und sich die Brew-Quelle im Ausland befindet. Freunde, die nicht im Internet arbeiten können, können hier immer stecken bleiben. Wir können es zuerst durch eine inländische Quelle ersetzen: Geben Sie zuerst das Homebrew-Verzeichnis cd / usr / local im Terminal ein / Homebrew , geben Sie dann git remote set-url origin http://mirrors.ustc.edu.cn/homebrew.git ein , um Zhongke Dayuan zu verwenden.

Nach Abschluss der Installation geben wir die Hadoop-Version ein, um die Version anzuzeigen. Wenn Informationen eingehen , ist die Installation erfolgreich.

Geben Sie den Hadoop in das Terminal ein . Der Installationsort von Hadoop wird angezeigt: / usr / local / bin / hadoop . Zu diesem Zeitpunkt ist Hadoop standardmäßig auf den lokalen Modus eingestellt.

 

2.4 Führen Sie eine pseudoverteilte Konfiguration durch

Hadoop hat drei Betriebsarten:

  1. Lokaler Modus (Standardmodus): Es muss kein separater Prozess aktiviert werden. Er kann direkt zum Testen und Entwickeln verwendet werden.
  2. Pseudo-verteilter Modus: Entspricht vollständig verteilt, nur ein Knoten.
  3. Vollständig verteilter Modus: Mehrere Knoten werden zusammen ausgeführt.

Hadoop kann pseudo-verteilt auf einem einzelnen Knoten ausgeführt werden. Der Hadoop-Prozess wird als separater Java-Prozess ausgeführt. Der Knoten fungiert sowohl als NameNode als auch als DataNode. Gleichzeitig liest er Dateien in HDFS. Pseudo-verteilt muss einige Konfigurationsdateien ändern.

Wie bereits erwähnt, lautet der Installationsort von Hadoop, der im Terminal abgefragt wird,  / usr / local / bin / hadoop . Sorgfältige Freunde können sehen, dass dies auch eine Ersatzdatei ist. Wir klicken mit der rechten Maustaste darauf und wählen die Anzeige des ursprünglichen Körpers aus. Sie finden den tatsächlichen Installationspfad von Hadoop Es ist  /usr/local/Cellar/hadoop/3.2.1_1/bin/hadoop , und die Konfigurationsdatei befindet sich in /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop . Wir müssen den Kern ändern. site.xml und hdfs-site.xml .

Die Konfigurationsdatei von Hadoop ist im XML-Format und jede Konfiguration wird durch Deklarieren des Namens und des Werts der Eigenschaft implementiert.

Zunächst wird die modifizierte Kern-site.xml Konfigurationsdatei , wir das hadoop Verzeichnis tatsächlich eingeben, geben Sie das Terminal cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop , und öffnen Sie dann die entsprechende Konfigurationsdatei mit vim vim Kern -site.xml .

Die folgende Abbildung ist die ursprüngliche Datei core-site.xml, in die unsere Konfiguration zwischen den Zeilen 19 und 20 eingefügt wird:

Hier müssen Sie ein tmp-Verzeichnis für hadoop einrichten, um temporäre Dateien zu speichern . Andernfalls verwendet Hadoop das temporäre Standardverzeichnis des Systems zum Speichern temporärer Dateien, sodass beim Beenden des Systems das temporäre Standardverzeichnis des Systems gelöscht wird. Wenn wir uns das nächste Mal bei Hadoop anmelden, müssen wir die Systeminitialisierung erneut durchführen.

Anschließend müssen Sie auch einen logischen Namen für den HDFS-Pfad festlegen, damit Sie in Zukunft über diesen logischen Namen auf das verteilte Dateisystem zugreifen können. Der logische Name, den ich hier festgelegt habe, ist hdfs: // localhost: 9000 , und die Portnummer wird von mir selbst definiert. Sie können ein anderes Terminalfenster öffnen, bevor Sie die Portnummer definieren. Geben Sie lsof -i ein: xxx , xxx ist die Portnummer, die Sie definieren möchten. Wenn Sie nach der Ausführung feststellen, dass eine Beleginformation vorhanden ist, bedeutet dies, dass die Portnummer bereits belegt ist, wenn keine Quittung vorhanden ist Informationen, die darauf hinweisen, dass dieser Port leer ist, können wir diese Portnummer verwenden.

Beachten Sie, dass 4 Leerzeichen als 1 Einzug verwendet werden.

Dann modify hdfs-site.xml Konfigurationsdatei oder in diesem Katalog  /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop die offene Konfigurationsdatei mit vim vim hdfs-site.xml .

Geben Sie auch unsere Konfiguration zwischen <Konfiguration> und </ Konfiguration> ein. Zunächst müssen wir die Anzahl der Kopien festlegen. Im verteilten Dateisystem hdfs gibt es mehrere Kopien jedes Datenblocks, um die Redundanz sicherzustellen, sodass nach dem Ausfall eines Computers andere Computer weiterhin normal verwendet werden können. Es gibt nur einen Computer und einen Knoten, daher wird die Menge auf 1 gesetzt. Anschließend müssen wir ein lokales Festplattenverzeichnis zum Speichern von fsimage-Dateien und ein lokales Festplattenverzeichnis zum Speichern von HDFS-Datenblöcken einrichten. . Legen Sie schließlich die Berechtigungen fest, damit Nicht-Root-Benutzer auch Dateien in HDFS schreiben können.

Bisher wurde die pseudoverteilte Konfiguration abgeschlossen. Beachten Sie, dass wir zu diesem Zeitpunkt die Dateien für Garn nicht konfiguriert haben. Als nächstes führen wir eine Routine direkt mit MapReduce aus.

 

2.5 Starten Sie den pseudoverteilten Hadoop

Formatieren Sie zunächst den NameNode. Geben Sie in dieses Verzeichnis  /usr/local/Cellar/hadoop/3.2.1_1 im Terminal hdfs namenode -format ein . Dann wird eine Reihe von Informationen ausgegeben. Solange Sie die in der folgenden Abbildung gezeigten Informationen sehen, bedeutet dies, dass das Format erfolgreich ist.

Starten Sie dann die Dämonen NameNode und DataNode. Geben Sie dieses Mal im  Verzeichnis /usr/local/Cellar/hadoop/3.2.1_1/libexec/sbin direkt start-dfs.sh ein . Sie können die in der folgenden Abbildung gezeigten Ergebnisse sehen, die Namensknoten, Datenknoten und sekundäre Namensknoten.

Sie können auch überprüfen, ob der Knoten gestartet wurde, indem Sie den Befehl jps im Terminal eingeben .

Öffnen Sie zu diesem Zeitpunkt einen Browser und besuchen Sie http: // localhost: 9870 / . Die folgende Oberfläche zeigt an, dass der Start erfolgreich war. Auf dieser Schnittstelle können Sie die Informationen von NameNode und DataNode anzeigen. Beachten Sie, dass die Portnummer der Hadoop 3.x-Version 9870 und die in vielen alten Tutorials beschriebene Portnummer 50070 lautet.

Geben Sie in ähnlicher Weise stop-dfs.sh in das Terminal ein , um den Vorgang zu schließen.

 

2.6 Handhabung WARNUNG

Nachdem der Autor start-dfs.sh ausgeführt hat , wird unten eine Warnzeile angezeigt , obwohl die Namensknoten, Datenknoten und sekundären Namensknoten normal gestartet wurden.

Dies liegt daran, dass der durch Brew installierte Hadoop nicht über das Verzeichnis / lib / native im Verzeichnis /usr/local/Cellar/hadoop/3.2.1_1/libexec verfügt . Nach Durchsicht der Online-Informationen stellte ich fest, dass das Problem auf zwei Arten gelöst werden kann: 1. Laden Sie den Quellcode von hadoop herunter, um lib / native von maven zu kompilieren. 2. Finden Sie einige andere, die im Internet kompiliert wurden, und fügen Sie sie direkt in hadoop ein. Hier laden wir lib / native direkt auf csdn herunter und legen es im Verzeichnis /usr/local/Cellar/hadoop/3.2.1_1/libexec ab. Starten Sie es dann neu.

Fügen Sie die lib / native Adresse hinzu: Link: https://pan.baidu.com/s/1JUmC5JZcVQapSzUzzZFQhA Passwort: lvk0

 

2.7 Ausführen von pseudoverteilten Hadoop-Instanzen

Pseudo-verteiltes Hadoop liest Daten auf HDFS.

Geben Sie im Browser unter http: // localhost: 9870 / address Utilities-> Browse the file system ein. Sie können sehen, dass derzeit kein Namensknoten vorhanden ist.

Zuerst müssen wir ein Benutzerverzeichnis in HDFS erstellen, um unsere Verwaltung zu vereinfachen. Geben Sie das Verzeichnis /usr/local/Cellar/hadoop/3.2.1_1/bin ein . Dieses Verzeichnis ist das ausführbare Dateiverzeichnis von exec von meinem Hadoop. Geben Sie hdfs dfs ein -mkdir -p / user / yang , wobei -mkdir das Erstellen eines Verzeichnisses bedeutet, -p das Erstellen eines hierarchischen Verzeichnisses entlang des Pfads bedeutet und der folgende Verzeichnispfad / user / yang vom Leser definiert werden kann. Das hdfs dfs gibt an, dass der aktuelle Befehl zusätzlich zu den Befehlen hadoop fs und  hadoop dfs nur für das HDFS-Dateisystem gilt  . Ersteres gilt für jedes andere Dateisystem, z. B. das lokale Dateisystem und das HDFS-Dateisystem, und letzteres bezieht sich auf den Befehl hadoop dfs. Der gleiche Effekt kann nur auf das HDFS-Dateisystem angewendet werden. Dann aktualisieren wir den Browser und ein neuer Namensknoten wurde eingerichtet.

Als Nächstes führen wir eine MapReduce-Instanz auf unserem benutzerdefinierten Knoten aus. Wir erstellen weiterhin zwei weitere Verzeichnisse unter / user / yang , geben hdfs dfs -mkdir -p / user / yang / mapreduce_example / input in das Terminal ein und geben dann ein /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop Verzeichnis, laden Sie die XML-Dateien unter diesem Verzeichnis in das soeben erstellte Eingabeverzeichnis hoch und geben Sie den Befehl hdfs dfs -put * .xml / user / ein yang / mapreduce_example / input , wobei die Rolle des Befehls -put darin besteht, eine lokale Datei oder ein lokales Verzeichnis in den Pfad in HDFS hochzuladen. Einer der beiden Parameter hinter -put ist die hochzuladende Datei / das hochzuladende Verzeichnis und der andere der Pfad in HDFS.

Nach dem Hochladen können Sie die Dateiliste mit dem Befehl hdfs dfs -ls / user / yang / mapreduce_example / input anzeigen. Sie können sie natürlich auch direkt im Browser anzeigen.

Geben Sie dann das bin-Verzeichnis cd /usr/local/Cellar/hadoop/3.2.1_1/bin ein und führen Sie  hadoop jar /usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/mapreduce/hadoop-mapreduce-examples aus -3.2.1.jar grep / user / yang / mapreduce_example / input / user / yang / mapreduce_example / output 'dfs [az.] +' , Dies ist eine grep-Instanz. Das Format dieser Anweisung ist das jar-Paket der hadoop-jar-Instanz Pfad grep Eingabedateipfad Ausgabedateipfad . Beachten Sie, dass der Eingabeordner hier die zu verarbeitende Datei (die in das Programm eingegebene Datei) und die Ausgabe das nach Abschluss des Programms generierte Ausgabeergebnis speichert . Zuvor konnte der Ausgabeordner nicht existieren .

Nach Abschluss des Vorgangs können Sie die  Ergebnisse mit hdfs dfs -cat / user / yang / mapreduce_example / output / * anzeigen.

Kann auch auf der Browserseite angezeigt werden. Sie können sehen, dass die ausgegebene part-r-00000-Datei das Ergebnis von Statistiken ist.

Sie können die laufenden Ergebnisse auch wieder auf das lokale Verzeichnis übertragen. Verwenden Sie dazu den Befehl -get hadoop fs -get / user / yang / mapreduce_example / output / Users / yangxingda / Desktop / hdfs-local im Format des Ausgabeverzeichnisses im Dateisystem hadoop fs -get hdfs Das lokale Verzeichnis, das Sie ablegen möchten .

Sie können die Ausgabe, den Text, der dem regulären Ausdruck am Anfang von dfs entspricht, und die Anzahl der Vorkommen sehen.

Veröffentlicht 16 Originalarbeiten · erntete Lob 7 · Ansichten 20000 +

Ich denke du magst

Origin blog.csdn.net/yuecangjiao5151/article/details/104483441
Empfohlen
Rangfolge