GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie Hadoop unter Ubuntu 20.04

Hadoop ist ein kostenloses, Open-Source- und Java-basiertes Software-Framework, das für die Speicherung und Verarbeitung großer Datensätze auf Computerclustern verwendet wird. Es verwendet HDFS, um seine Daten zu speichern und diese Daten mit MapReduce zu verarbeiten. Es ist ein Ökosystem von Big-Data-Tools, die hauptsächlich für Data Mining und maschinelles Lernen verwendet werden.

Apache Hadoop 3.3 enthält spürbare Verbesserungen und viele Fehlerbehebungen gegenüber den vorherigen Versionen. Es besteht aus vier Hauptkomponenten wie Hadoop Common, HDFS, YARN und MapReduce.

Dieses Tutorial erklärt Ihnen, wie Sie Apache Hadoop auf einem Ubuntu 20.04 LTS Linux-System installieren und konfigurieren.

Schritt 1 – Java installieren

Hadoop ist in Java geschrieben und unterstützt nur Java Version 8. Hadoop Version 3.3 und neuere Versionen unterstützen auch Java 11 Runtime sowie Java 8.

Sie können OpenJDK 11 aus den standardmäßigen apt-Repositories installieren:

sudo apt update 
sudo apt install openjdk-11-jdk

Überprüfen Sie nach der Installation die installierte Version von Java mit dem folgenden Befehl:

java -version 

Sie sollten die folgende Ausgabe erhalten:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Schritt 2 – Erstellen Sie einen Hadoop-Benutzer

Aus Sicherheitsgründen empfiehlt es sich, einen separaten Benutzer zum Ausführen von Hadoop zu erstellen.

Führen Sie den folgenden Befehl aus, um einen neuen Benutzer mit dem Namen hadoop zu erstellen:

sudo adduser hadoop 

Geben Sie das neue Passwort ein und bestätigen Sie es wie unten gezeigt:

Adding user `hadoop' ...
Adding new group `hadoop' (1002) ...
Adding new user `hadoop' (1002) with group `hadoop' ...
Creating home directory `/home/hadoop' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for hadoop
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

Schritt 3 – SSH-schlüsselbasierte Authentifizierung konfigurieren

Als Nächstes müssen Sie die passwortlose SSH-Authentifizierung für das lokale System konfigurieren.

Ändern Sie zuerst den Benutzer mit dem folgenden Befehl in hadoop:

su - hadoop 

Führen Sie als Nächstes den folgenden Befehl aus, um öffentliche und private Schlüsselpaare zu generieren:

ssh-keygen -t rsa 

Sie werden aufgefordert, den Dateinamen einzugeben. Drücken Sie einfach die Eingabetaste, um den Vorgang abzuschließen:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:QSa2syeISwP0hD+UXxxi0j9MSOrjKDGIbkfbM3ejyIk [email protected]
The key's randomart image is:
+---[RSA 3072]----+
| ..o++=.+        |
|..oo++.O         |
|. oo. B .        |
|o..+ o * .       |
|= ++o o S        |
|.++o+  o         |
|.+.+ + . o       |
|o . o * o .      |
|   E + .         |
+----[SHA256]-----+

Hängen Sie als Nächstes die generierten öffentlichen Schlüssel aus id_rsa.pub an „authorized_keys“ an und legen Sie die richtige Berechtigung fest:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
chmod 640 ~/.ssh/authorized_keys 

Überprüfen Sie als Nächstes die passwortlose SSH-Authentifizierung mit dem folgenden Befehl:

ssh localhost 

Sie werden aufgefordert, Hosts zu authentifizieren, indem Sie bekannten Hosts RSA-Schlüssel hinzufügen. Geben Sie yes ein und drücken Sie die Eingabetaste, um den localhost zu authentifizieren:

The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:JFqDVbM3zTPhUPgD5oMJ4ClviH6tzIRZ2GD3BdNqGMQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Schritt 4 – Installation von Hadoop

Ändern Sie zuerst den Benutzer mit dem folgenden Befehl in hadoop:

su - hadoop 

Laden Sie als Nächstes die neueste Version von Hadoop mit dem Befehl wget herunter:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz 

Extrahieren Sie nach dem Herunterladen die heruntergeladene Datei:

tar -xvzf hadoop-3.3.0.tar.gz 

Als nächstes benennen Sie das extrahierte Verzeichnis in hadoop:

um
mv hadoop-3.3.0 hadoop 

Als Nächstes müssen Sie Hadoop- und Java-Umgebungsvariablen auf Ihrem System konfigurieren.

Öffnen Sie die ~/.bashrc Datei in Ihrem bevorzugten Texteditor:

nano ~/.bashrc 

Fügen Sie die folgenden Zeilen an die Datei an. Sie können den JAVA_HOME-Speicherort finden, indem Sie dirname $(dirname $(readlink -f $(which java))) command on terminal.

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_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"

Save and close the file. Then, activate the environment variables with the following command:

source ~/.bashrc 

Öffnen Sie als Nächstes die Hadoop-Umgebungsvariablendatei:

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh 

Legen Sie erneut JAVA_HOME in der Hadoop-Umgebung fest.

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Schritt 5 – Konfigurieren von Hadoop

Zuerst müssen Sie die Verzeichnisse namenode und datanode im Hadoop-Home-Verzeichnis erstellen:

Führen Sie den folgenden Befehl aus, um beide Verzeichnisse zu erstellen:

mkdir -p ~/hadoopdata/hdfs/namenode 
mkdir -p ~/hadoopdata/hdfs/datanode 

Bearbeiten Sie als Nächstes die core-site.xml Datei und aktualisieren Sie sie mit Ihrem System-Hostnamen:

nano $HADOOP_HOME/etc/hadoop/core-site.xml 

Ändern Sie den folgenden Namen gemäß Ihrem System-Hostnamen:

XHTML
123456 fs.defaultFS hdfs://hadoop.tecadmin.com:9000

Speichern und schließen Sie die Datei. Bearbeiten Sie dann die hdfs-site.xml Datei:

nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml 

Ändern Sie den NameNode- und DataNode-Verzeichnispfad wie unten gezeigt:

XHTML
1234567891011121314151617 dfs.replication 1 dfs.name.dir file:///home/hadoop/hadoopdata/hdfs/namenode dfs.data.dir file:///home /hadoop/hadoopdata/hdfs/datanode

Speichern und schließen Sie die Datei. Bearbeiten Sie dann die mapred-site.xml Datei:

nano $HADOOP_HOME/etc/hadoop/mapred-site.xml 

Nehmen Sie die folgenden Änderungen vor:

XHTML
123456 mapreduce.framework.name yarn

Speichern und schließen Sie die Datei. Bearbeiten Sie dann die yarn-site.xml Datei:

nano $HADOOP_HOME/etc/hadoop/yarn-site.xml 

Nehmen Sie die folgenden Änderungen vor:

XHTML
123456 yarn.nodemanager.aux-services mapreduce_shuffle

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Schritt 6 – Hadoop-Cluster starten

Vor dem Starten des Hadoop-Clusters. Sie müssen den Namenode als Hadoop-Benutzer formatieren.

Führen Sie den folgenden Befehl aus, um den Hadoop-Namenode zu formatieren:

hdfs namenode -format 

Sie sollten die folgende Ausgabe erhalten:

2020-11-23 10:31:51,318 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2020-11-23 10:31:51,323 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2020-11-23 10:31:51,323 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop.tecadmin.net/127.0.1.1
************************************************************/

Führen Sie nach dem Formatieren des Namenode den folgenden Befehl aus, um den Hadoop-Cluster zu starten:

start-dfs.sh 

Sobald das HDFS erfolgreich gestartet wurde, sollten Sie die folgende Ausgabe erhalten:

Starting namenodes on [hadoop.tecadmin.com]
hadoop.tecadmin.com: Warning: Permanently added 'hadoop.tecadmin.com,fe80::200:2dff:fe3a:26ca%eth0' (ECDSA) to the list of known hosts.
Starting datanodes
Starting secondary namenodes [hadoop.tecadmin.com]

Starten Sie als Nächstes den YARN-Dienst wie unten gezeigt:

start-yarn.sh 

Sie sollten die folgende Ausgabe erhalten:

Starting resourcemanager
Starting nodemanagers

Sie können jetzt den Status aller Hadoop-Dienste mit dem jps-Befehl überprüfen:

jps 

Sie sollten alle laufenden Dienste in der folgenden Ausgabe sehen:

18194 NameNode
18822 NodeManager
17911 SecondaryNameNode
17720 DataNode
18669 ResourceManager
19151 Jps

Schritt 7 – Firewall anpassen

Hadoop ist jetzt gestartet und überwacht die Ports 9870 und 8088. Als Nächstes müssen Sie diese Ports durch die Firewall zulassen.

Führen Sie den folgenden Befehl aus, um Hadoop-Verbindungen durch die Firewall zuzulassen:

firewall-cmd --permanent --add-port=9870/tcp 
firewall-cmd --permanent --add-port=8088/tcp 

Laden Sie als Nächstes den Dienst firewalld neu, um die Änderungen zu übernehmen:

firewall-cmd --reload 

Schritt 8 – Zugriff auf Hadoop Namenode und Ressourcenmanager

Um auf den Namenode zuzugreifen, öffnen Sie Ihren Webbrowser und besuchen Sie die URL http://your-server-ip:9870. Sie sollten den folgenden Bildschirm sehen:

http://hadoop.tecadmin.net:9870

Um auf die Ressourcenverwaltung zuzugreifen, öffnen Sie Ihren Webbrowser und besuchen Sie die URL http://your-server-ip:8088. Sie sollten den folgenden Bildschirm sehen:

http://hadoop.tecadmin.net:8088

Schritt 9 – Überprüfen Sie den Hadoop-Cluster

An diesem Punkt wird der Hadoop-Cluster installiert und konfiguriert. Als Nächstes erstellen wir einige Verzeichnisse im HDFS-Dateisystem, um Hadoop zu testen.

Lassen Sie uns mit dem folgenden Befehl ein Verzeichnis im HDFS-Dateisystem erstellen:

hdfs dfs -mkdir /test1
hdfs dfs -mkdir /logs 

Führen Sie als Nächstes den folgenden Befehl aus, um das obige Verzeichnis aufzulisten:

hdfs dfs -ls / 

Sie sollten die folgende Ausgabe erhalten:

Found 3 items
drwxr-xr-x   - hadoop supergroup          0 2020-11-23 10:56 /logs
drwxr-xr-x   - hadoop supergroup          0 2020-11-23 10:51 /test1

Legen Sie auch einige Dateien im Hadoop-Dateisystem ab. Zum Beispiel Protokolldateien vom Host-Rechner in das Hadoop-Dateisystem stellen.

hdfs dfs -put /var/log/* /logs/  

Sie können die obigen Dateien und Verzeichnisse auch in der Hadoop-Namenode-Weboberfläche überprüfen.

Gehen Sie zur Namenode-Weboberfläche, klicken Sie auf Dienstprogramme => Durchsuchen Sie das Dateisystem. Auf dem folgenden Bildschirm sollten Sie Ihre zuvor erstellten Verzeichnisse sehen:

http://hadoop.tecadmin.net:9870/explorer.html

Schritt 10 – Hadoop-Cluster stoppen

Sie können den Hadoop Namenode- und Yarn-Dienst auch jederzeit stoppen, indem Sie stop-dfs.sh ausführen und stop-yarn.sh script als Hadoop-Benutzer.

Um den Hadoop-Namenode-Dienst zu stoppen, führen Sie den folgenden Befehl als Hadoop-Benutzer aus:

stop-dfs.sh  

Führen Sie den folgenden Befehl aus, um den Hadoop Resource Manager-Dienst zu stoppen:

stop-yarn.sh 

Schlussfolgerung

In diesem Tutorial wurde Ihnen Schritt für Schritt erklärt, wie Sie Hadoop auf einem Ubuntu 20.04-Linux-System installieren und konfigurieren.


Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie Redis unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie Jenkins unter Ubuntu 20.04

So installieren und konfigurieren Sie Redis in Ubuntu 20.04

So installieren und konfigurieren Sie Neo4j unter Ubuntu 20.04

So installieren und konfigurieren Sie Ubuntu SDK in Ubuntu 16.04 und 14.04

So installieren und konfigurieren Sie PostgreSQL unter Ubuntu

So installieren und konfigurieren Sie Jenkins unter Ubuntu

So installieren und konfigurieren Sie Jenkins in Ubuntu 20.04