Apache Hadoop besteht aus mehreren Open-Source-Softwarepaketen, die für die verteilte Speicherung und verteilte Verarbeitung von Big Data zusammenarbeiten. Hadoop besteht aus vier Hauptkomponenten:
- Hadoop Common – die verschiedenen Softwarebibliotheken, von denen Hadoop abhängig ist, um ausgeführt zu werden
- Hadoop Distributed File System (HDFS) – ein Dateisystem, das eine effiziente Verteilung und Speicherung von Big Data über einen Cluster von Computern ermöglicht
- Hadoop MapReduce – zur Verarbeitung der Daten verwendet
- Hadoop YARN – eine API, die die Zuweisung von Rechenressourcen für den gesamten Cluster verwaltet
In diesem Tutorial gehen wir die Schritte zur Installation von Hadoop Version 3 auf Ubuntu 20.04 durch. Dies beinhaltet die Installation von HDFS (Namenode und Datanode), YARN und MapReduce auf einem Cluster mit einem einzelnen Knoten, der im Pseudo-Verteilten Modus konfiguriert ist, der eine verteilte Simulation auf einem einzelnen Computer darstellt. Jede Komponente von Hadoop (HDFS, YARN, MapReduce) wird auf unserem Knoten als separater Java-Prozess ausgeführt.
In diesem Tutorial lernen Sie:
- So fügen Sie Benutzer für die Hadoop-Umgebung hinzu
- So installieren Sie die Java-Voraussetzung
- So konfigurieren Sie passwortloses SSH
- So installieren Sie Hadoop und konfigurieren die erforderlichen zugehörigen XML-Dateien
- So starten Sie den Hadoop-Cluster
- Zugriff auf die Web-Benutzeroberfläche von NameNode und ResourceManager
Apache Hadoop auf Ubuntu 20.04 Focal Fossa
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu 20.04 installiert oder Ubuntu 20.04 Focal Fossa aktualisiert |
Software | Apache Hadoop, Java |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Benutzer für Hadoop-Umgebung erstellen
Hadoop sollte ein eigenes dediziertes Benutzerkonto auf Ihrem System haben. Öffnen Sie zum Erstellen eines Terminals ein Terminal und geben Sie den folgenden Befehl ein. Sie werden auch aufgefordert, ein Passwort für das Konto zu erstellen.
$ sudo adduser hadoopErstellen Sie einen neuen Hadoop-Benutzer
Installieren Sie die Java-Voraussetzung
Hadoop basiert auf Java, daher müssen Sie es auf Ihrem System installieren, bevor Sie Hadoop verwenden können. Zum Zeitpunkt der Erstellung dieses Artikels erfordert die aktuelle Hadoop-Version 3.1.3 Java 8, also werden wir das auf unserem System installieren.
Verwenden Sie die folgenden beiden Befehle, um die neuesten Paketlisten in apt
abzurufen und installieren Sie Java 8:
$ sudo apt update $ sudo apt install openjdk-8-jdk openjdk-8-jre
Passwortloses SSH konfigurieren
Hadoop verlässt sich auf SSH, um auf seine Knoten zuzugreifen. Es stellt über SSH eine Verbindung zu Remote-Computern sowie zu Ihrem lokalen Computer her, wenn Hadoop darauf ausgeführt wird. Obwohl wir Hadoop in diesem Tutorial nur auf unserem lokalen Computer einrichten, muss SSH dennoch installiert sein. Außerdem müssen wir passwortloses SSH konfigurieren,
damit Hadoop unbemerkt im Hintergrund Verbindungen herstellen kann.
- Wir benötigen sowohl das OpenSSH-Server- als auch das OpenSSH-Client-Paket. Installieren Sie sie mit diesem Befehl:
$ sudo apt install openssh-server openssh-client
- Bevor Sie fortfahren, melden Sie sich am besten bei
hadoop
an Benutzerkonto, das wir zuvor erstellt haben. Um Benutzer in Ihrem aktuellen Terminal zu ändern, verwenden Sie den folgenden Befehl:$ su hadoop
- Wenn diese Pakete installiert sind, ist es an der Zeit, öffentliche und private Schlüsselpaare mit dem folgenden Befehl zu generieren. Beachten Sie, dass das Terminal Sie mehrmals auffordern wird, aber alles, was Sie tun müssen, ist,
ENTER
zu drücken um fortzufahren.$ ssh-keygen -t rsa
Generieren von RSA-Schlüsseln für passwortloses SSH - Als nächstes kopieren Sie den neu generierten RSA-Schlüssel in
id_rsa.pub
zuauthorized_keys
:$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- Sie können sicherstellen, dass die Konfiguration erfolgreich war, indem Sie eine SSH-Verbindung zu localhost herstellen. Wenn Sie dies tun können, ohne zur Eingabe eines Passworts aufgefordert zu werden, können Sie loslegen. SSH-Verbindung mit dem System ohne Passwortabfrage bedeutet, dass es funktioniert hat
Installieren Sie Hadoop und konfigurieren Sie die zugehörigen XML-Dateien
Besuchen Sie die Website von Apache, um Hadoop herunterzuladen. Sie können auch diesen Befehl verwenden, wenn Sie die Binärdatei der Hadoop-Version 3.1.3 direkt herunterladen möchten:
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
Extrahieren Sie den Download in hadoop
Home-Verzeichnis des Benutzers mit diesem Befehl:
$ tar -xzvf hadoop-3.1.3.tar.gz -C /home/hadoop
Umgebungsvariable einrichten
Der folgende export
-Befehle konfigurieren die erforderlichen Hadoop-Umgebungsvariablen auf unserem System. Sie können diese alle kopieren und in Ihr Terminal einfügen (möglicherweise müssen Sie Zeile 1 ändern, wenn Sie eine andere Version von Hadoop haben):
export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
Sourcen Sie die .bashrc
Datei in der aktuellen Anmeldesitzung:
$ source ~/.bashrc
Als nächstes werden wir einige Änderungen an hadoop-env.sh
vornehmen Datei, die im Hadoop-Installationsverzeichnis unter /etc/hadoop
zu finden ist . Verwenden Sie nano oder Ihren bevorzugten Texteditor, um es zu öffnen:
$ nano ~/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
Ändern Sie JAVA_HOME
Variable, wo Java installiert ist. Auf unserem System (und wahrscheinlich auch Ihrem, wenn Sie Ubuntu 20.04 verwenden und uns bisher gefolgt sind) ändern wir diese Zeile in:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64Ändern Sie die Umgebungsvariable JAVA_HOME
Das wird die einzige Änderung sein, die wir hier vornehmen müssen. Sie können Ihre Änderungen an der Datei speichern und sie schließen.
Konfigurationsänderungen in der Datei core-site.xml
Die nächste Änderung, die wir vornehmen müssen, befindet sich in der core-site.xml
Datei. Öffnen Sie es mit diesem Befehl:
$ nano ~/hadoop-3.1.3/etc/hadoop/core-site.xml
Geben Sie die folgende Konfiguration ein, die HDFS anweist, auf localhost-Port 9000 zu laufen, und ein Verzeichnis für temporäre Daten einrichtet.
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/home/hadoop/hadooptmpdata
Änderungen an der Konfigurationsdatei core-site.xml Speichern Sie Ihre Änderungen und schließen Sie diese Datei. Erstellen Sie dann das Verzeichnis, in dem temporäre Daten gespeichert werden:
$ mkdir ~/hadooptmpdata
Konfigurationsänderungen in der Datei hdfs-site.xml
Erstellen Sie zwei neue Verzeichnisse für Hadoop, um die Namenode- und Datanode-Informationen zu speichern.
$ mkdir -p ~/hdfs/namenode ~/hdfs/datanode
Bearbeiten Sie dann die folgende Datei, um Hadoop mitzuteilen, wo diese Verzeichnisse zu finden sind:
$ nano ~/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
Nehmen Sie die folgenden Änderungen an hdfs-site.xml
vor Datei, bevor Sie sie speichern und schließen:
dfs.replication
1
dfs.name.dir
file:///home/hadoop/hdfs/namenode
dfs.data.dir
file:///home/hadoop/hdfs/datanode
Änderungen der hdfs-site.xml-Konfigurationsdatei Konfigurationsänderungen in der mapred-site.xml-Datei
Öffnen Sie die XML-Konfigurationsdatei von MapReduce mit dem folgenden Befehl:
$ nano ~/hadoop-3.1.3/etc/hadoop/mapred-site.xml
Und nehmen Sie die folgenden Änderungen vor, bevor Sie die Datei speichern und schließen:
mapreduce.framework.name
yarn
Änderungen der Konfigurationsdatei mapred-site.xml Konfigurationsänderungen in der Datei wool-site.xml
Öffnen Sie die YARN-Konfigurationsdatei mit dem folgenden Befehl:
$ nano ~/hadoop-3.1.3/etc/hadoop/yarn-site.xml
Fügen Sie dieser Datei die folgenden Einträge hinzu, bevor Sie die Änderungen speichern und sie schließen:
mapreduceyarn.nodemanager.aux-services
mapreduce_shuffle
Änderungen an der Konfigurationsdatei der Garn-Site Starten des Hadoop-Clusters
Bevor wir den Cluster zum ersten Mal verwenden, müssen wir den Namenode formatieren. Sie können dies mit dem folgenden Befehl tun:
$ hdfs namenode -formatFormatieren des HDFS-NameNode
Ihr Terminal wird eine Menge Informationen ausspucken. Solange Sie keine Fehlermeldungen sehen, können Sie davon ausgehen, dass es funktioniert hat.
Als nächstes starten Sie das HDFS mit start-dfs.sh
Skript:
$ start-dfs.shFühren Sie das Skript start-dfs.sh aus
Starten Sie nun die YARN-Dienste über die start-yarn.sh
Skript:
$ start-yarn.shFühren Sie das Skript start-yarn.sh aus
Um zu überprüfen, ob alle Hadoop-Dienste/Daemons erfolgreich gestartet wurden, können Sie den jps
verwenden Befehl. Dadurch werden alle Prozesse angezeigt, die derzeit Java verwenden und auf Ihrem System ausgeführt werden.
$ jpsFühren Sie jps aus, um alle Java-abhängigen Prozesse anzuzeigen und zu überprüfen, ob Hadoop-Komponenten ausgeführt werden
Jetzt können wir die aktuelle Hadoop-Version mit einem der folgenden Befehle überprüfen:
$ hadoop version
oder
$ hdfs versionÜberprüfen der Hadoop-Installation und der aktuellen Version
HDFS-Befehlszeilenschnittstelle
Die HDFS-Befehlszeile wird verwendet, um auf HDFS zuzugreifen und Verzeichnisse zu erstellen oder andere Befehle zum Bearbeiten von Dateien und Verzeichnissen auszugeben. Verwenden Sie die folgende Befehlssyntax, um einige Verzeichnisse zu erstellen und aufzulisten:
$ hdfs dfs -mkdir /test $ hdfs dfs -mkdir /hadooponubuntu $ hdfs dfs -ls /Interaktion mit der HDFS-Befehlszeile
Greifen Sie über den Browser auf Namenode und YARN zu
Sie können über einen beliebigen Browser Ihrer Wahl, z. B. Mozilla Firefox oder Google Chrome, auf die Web-Benutzeroberfläche für NameNode und YARN Resource Manager zugreifen.
Navigieren Sie für die NameNode-Webbenutzeroberfläche zu http://HADOOP-HOSTNAME-OR-IP:50070
Um auf die Weboberfläche von YARN Resource Manager zuzugreifen, die alle derzeit ausgeführten Jobs im Hadoop-Cluster anzeigt, navigieren Sie zu http://HADOOP-HOSTNAME-OR-IP:8088
Schlussfolgerung
In diesem Artikel haben wir gesehen, wie man Hadoop auf einem Single-Node-Cluster in Ubuntu 20.04 Focal Fossa installiert. Hadoop bietet uns eine handliche Lösung für den Umgang mit Big Data, die es uns ermöglicht, Cluster für die Speicherung und Verarbeitung unserer Daten zu nutzen. Es erleichtert uns das Leben bei der Arbeit mit großen Datensätzen mit seiner flexiblen Konfiguration und der praktischen Weboberfläche.