So installieren Sie Hadoop im Standalone-Modus unter Debian 9

Einführung

Hadoop ist ein Java-basiertes Programmierframework, das die Verarbeitung und Speicherung extrem großer Datensätze auf einem Cluster kostengünstiger Maschinen unterstützt. Es war das erste große Open Source-Projekt im Bereich Big Data und wird von der Apache Software Foundation gesponsert.

Hadoop besteht aus vier Hauptschichten:

  • * Hadoop Common * ist die Sammlung von Dienstprogrammen und Bibliotheken, die andere Hadoop-Module unterstützen.

  • * HDFS *, das für Hadoop Distributed File System steht, ist für die Speicherung der Daten auf der Festplatte verantwortlich.

  • * YARN *, kurz für "Yet Another Resource Negotiator", ist das "Betriebssystem" für HDFS.

  • * MapReduce * ist das ursprüngliche Verarbeitungsmodell für Hadoop-Cluster. Es verteilt die Arbeit innerhalb des Clusters oder der Zuordnung und organisiert und reduziert die Ergebnisse der Knoten in eine Antwort auf eine Abfrage. Viele andere Verarbeitungsmodelle sind für die 3.x-Version von Hadoop verfügbar.

Da die Einrichtung von Hadoop-Clustern relativ komplex ist, enthält das Projekt einen eigenständigen Modus, in dem Sie sich mit Hadoop vertraut machen, einfache Vorgänge ausführen und Fehler beheben können.

In diesem Lernprogramm installieren Sie Hadoop im eigenständigen Modus und führen eines der enthaltenen MapReduce-Beispielprogramme aus, um die Installation zu überprüfen.

Bevor Sie beginnen, können Sie auch einen Blick auf Eine Einführung in Big Data Concepts und werfen Terminologie oder Eine Einführung in Hadoop

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Schritt 1 - Installieren von Hadoop

Um Hadoop zu installieren, besuchen Sie zuerst die Apache Hadoop Releases page, um die neueste stabile Version zu finden.

Navigieren Sie zu * binary * für das Release, das Sie installieren möchten. In diesem Handbuch installieren wir Hadoop 3.0.3.

image: https://assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-download-link.png [Screenshot der Hadoop-Veröffentlichungsseite mit dem Link zur neuesten stabilen Binärdatei]

Klicken Sie auf der nächsten Seite mit der rechten Maustaste und kopieren Sie den Link in die Release-Binärdatei.

Verwenden Sie auf Ihrem Server "+ wget +", um es abzurufen:

wget http:///dist/hadoop/common/hadoop-/hadoop-.tar.gz

Führen Sie eine schnelle Überprüfung mit SHA-256 durch, um sicherzustellen, dass die heruntergeladene Datei nicht geändert wurde. Kehren Sie zur Seite releases zurück, klicken Sie mit der rechten Maustaste und kopieren Sie den Link in die Prüfsummendatei für die heruntergeladene Release-Binärdatei:

Verwenden Sie erneut "+ wget +" auf Ihrem Server, um die Datei herunterzuladen:

wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-/hadoop-.tar.gz.mds

Führen Sie dann die Überprüfung durch:

sha256sum hadoop-.tar.gz
Outputdb96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a  hadoop-.tar.gz

Vergleichen Sie diesen Wert mit dem SHA-256-Wert in der Datei + .mds +:

cat hadoop-.tar.gz.mds | grep SHA256

~ / hadoop-3.0.3.tar.gz.mds

...
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A

Sie können den Unterschied zwischen Groß- und Kleinschreibung ignorieren. Die Ausgabe des Befehls, den Sie für die Datei ausgeführt haben, die wir vom Spiegel heruntergeladen haben, sollte mit dem Wert in der Datei übereinstimmen, die Sie von apache.org heruntergeladen haben.

Nachdem Sie überprüft haben, dass die Datei nicht beschädigt oder geändert wurde, verwenden Sie den Befehl + tar + mit dem Flag + -x + zum Extrahieren, + -z + zum Dekomprimieren und + -v + für die ausführliche Ausgabe , und + -f +, um anzugeben, dass Sie das Archiv aus einer Datei extrahieren. Verwenden Sie die Tabulatorvervollständigung oder ersetzen Sie die richtige Versionsnummer im folgenden Befehl:

tar -xzvf hadoop-.tar.gz

Verschieben Sie die extrahierten Dateien schließlich in "+ / usr / local +", den entsprechenden Speicherort für lokal installierte Software. Ändern Sie bei Bedarf die Versionsnummer entsprechend der von Ihnen heruntergeladenen Version.

sudo mv hadoop- /usr/local/hadoop

Mit der installierten Software können wir die Umgebung konfigurieren.

Schritt 2 - Ausführen von Hadoop

Stellen wir sicher, dass Hadoop ausgeführt wird. Führen Sie den folgenden Befehl aus, um Hadoop zu starten und seine Hilfeoptionen anzuzeigen:

/usr/local/hadoop/bin/hadoop

Die folgende Ausgabe zeigt an, dass Sie Hadoop erfolgreich für die Ausführung im Standalone-Modus konfiguriert haben.

OutputUsage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
 where CLASSNAME is a user-provided Java class

 OPTIONS is none or any of:

--config dir                     Hadoop config directory
--debug                          turn on shell script debug mode
--help                           usage information
buildpaths                       attempt to add class files from build tree
hostnames list[,of,host,names]   hosts to use in slave mode
hosts filename                   list of hosts to use in slave mode
loglevel level                   set the log4j level for this command
workers                          turn on worker mode

 SUBCOMMAND is one of:
. . .

Wir werden sicherstellen, dass es ordnungsgemäß funktioniert, indem wir das mitgelieferte MapReduce-Beispielprogramm ausführen. Erstellen Sie dazu ein Verzeichnis mit dem Namen "+ input" in Ihrem Ausgangsverzeichnis und kopieren Sie die Hadoop-Konfigurationsdateien in dieses Verzeichnis, um diese Dateien als unsere Daten zu verwenden.

mkdir ~/input
cp /usr/local/hadoop/etc/hadoop/*.xml ~/input

Als nächstes führen wir das MapReduce-Programm + hadoop-mapreduce-examples + aus, ein Java-Archiv mit mehreren Optionen. Wir rufen das Programm "+ grep " auf, eines der vielen Beispiele in " hadoop-mapreduce-examples ", gefolgt vom Eingabeverzeichnis " input " und dem Ausgabeverzeichnis " grep_example ". Das MapReduce grep-Programm zählt die Übereinstimmungen eines wörtlichen Wortes oder eines regulären Ausdrucks. Schließlich geben wir den regulären Ausdruck " erlaubt [.] * " An, um Vorkommen des Wortes " erlaubt +" innerhalb oder am Ende eines deklarativen Satzes zu finden. Der Ausdruck unterscheidet zwischen Groß- und Kleinschreibung, sodass wir das Wort nicht finden würden, wenn es am Anfang eines Satzes groß geschrieben würde.

Führen Sie den folgenden Befehl aus:

/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar grep ~/input ~/grep_example 'allowed[.]*'

Nach Abschluss der Aufgabe wird eine Zusammenfassung der verarbeiteten Vorgänge und der aufgetretenen Fehler angezeigt, die jedoch nicht die tatsächlichen Ergebnisse enthalten:

Output . . .
       File System Counters
       FILE: Number of bytes read=1330690
       FILE: Number of bytes written=3128841
       FILE: Number of read operations=0
       FILE: Number of large read operations=0
       FILE: Number of write operations=0
   Map-Reduce Framework
       Map input records=2
       Map output records=2
       Map output bytes=33
       Map output materialized bytes=43
       Input split bytes=115
       Combine input records=0
       Combine output records=0
       Reduce input groups=2
       Reduce shuffle bytes=43
       Reduce input records=2
       Reduce output records=2
       Spilled Records=4
       Shuffled Maps =1
       Failed Shuffles=0
       Merged Map outputs=1
       GC time elapsed (ms)=3
       Total committed heap usage (bytes)=478150656
   Shuffle Errors
       BAD_ID=0
       CONNECTION=0
       IO_ERROR=0
       WRONG_LENGTH=0
       WRONG_MAP=0
       WRONG_REDUCE=0
   File Input Format Counters
       Bytes Read=147
   File Output Format Counters
       Bytes Written=34

Die Ergebnisse werden im Verzeichnis "+ ~ / grep_example +" gespeichert.

Wenn dieses Ausgabeverzeichnis bereits vorhanden ist, schlägt das Programm fehl. Statt die Zusammenfassung anzuzeigen, wird Folgendes angezeigt:

Output . . .
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
   at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

Überprüfen Sie die Ergebnisse, indem Sie "+ cat +" im Ausgabeverzeichnis ausführen:

cat ~/grep_example/*

Sie sehen diese Ausgabe:

Output19  allowed.
1   allowed

Die MapReduce-Task hat 19 Vorkommen des Wortes "+ erlaubt +" gefunden, gefolgt von einem Punkt und einem Vorkommen, bei dem dies nicht der Fall war. Das Ausführen des Beispielprogramms hat bestätigt, dass unsere eigenständige Installation ordnungsgemäß funktioniert und dass nicht privilegierte Benutzer auf dem System Hadoop zur Untersuchung oder zum Debuggen ausführen können.

Fazit

In diesem Lernprogramm haben wir Hadoop im eigenständigen Modus installiert und mit einem von ihm bereitgestellten Beispielprogramm überprüft. Um zu erfahren, wie Sie Ihre eigenen MapReduce-Programme schreiben, besuchen Sie das MapReduce tutorial, das im Folgenden beschrieben wird durch den Code hinter dem Beispiel, das Sie in diesem Tutorial verwendet haben. Informationen zum Einrichten eines Clusters finden Sie im Apache Foundation-Handbuch Hadoop Cluster Setup.