Hadoop - Umwelt-Setup

Hadoop wird von der GNU / Linux-Plattform und ihren Varianten unterstützt. Daher müssen wir ein Linux-Betriebssystem installieren, um die Hadoop-Umgebung einzurichten. Wenn Sie ein anderes Betriebssystem als Linux haben, können Sie eine Virtualbox-Software darin installieren und Linux in der Virtualbox haben.

Setup vor der Installation

Bevor wir Hadoop in der Linux-Umgebung installieren, müssen wir Linux mit einrichten ssh(Sichere Shell). Führen Sie die folgenden Schritte aus, um die Linux-Umgebung einzurichten.

Benutzer erstellen

Zu Beginn wird empfohlen, einen separaten Benutzer für Hadoop zu erstellen, um das Hadoop-Dateisystem vom Unix-Dateisystem zu isolieren. Führen Sie die folgenden Schritte aus, um einen Benutzer zu erstellen.

  • Öffnen Sie den Stamm mit dem Befehl "su".

  • Erstellen Sie einen Benutzer aus dem Root-Konto mit dem Befehl "useradd username".

  • Jetzt können Sie mit dem Befehl "su username" ein bestehendes Benutzerkonto eröffnen.

Öffnen Sie das Linux-Terminal und geben Sie die folgenden Befehle ein, um einen Benutzer zu erstellen.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd

SSH-Setup und Schlüsselgenerierung

Das SSH-Setup ist erforderlich, um verschiedene Vorgänge in einem Cluster auszuführen, z. B. Starten, Stoppen und verteilte Daemon-Shell-Vorgänge. Um verschiedene Benutzer von Hadoop zu authentifizieren, muss ein öffentliches / privates Schlüsselpaar für einen Hadoop-Benutzer bereitgestellt und für verschiedene Benutzer freigegeben werden.

Die folgenden Befehle werden zum Generieren eines Schlüsselwertpaars mit SSH verwendet. Kopieren Sie die öffentlichen Schlüssel aus id_rsa.pub in autorisierte Schlüssel und geben Sie dem Eigentümer Lese- und Schreibberechtigungen für die Datei "autorisierte Schlüssel".

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys

Java installieren

Java ist die Hauptvoraussetzung für Hadoop. Zunächst sollten Sie die Existenz von Java in Ihrem System mit dem Befehl "java -version" überprüfen. Die Syntax des Java-Versionsbefehls ist unten angegeben.

$ java -version

Wenn alles in Ordnung ist, erhalten Sie die folgende Ausgabe.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Wenn Java nicht auf Ihrem System installiert ist, führen Sie die folgenden Schritte aus, um Java zu installieren.

Schritt 1

Laden Sie Java (JDK <neueste Version> - X64.tar.gz) herunter, indem Sie den folgenden Link besuchen: www.oracle.com

Dann jdk-7u71-linux-x64.tar.gz wird in Ihr System heruntergeladen.

Schritt 2

Im Allgemeinen finden Sie die heruntergeladene Java-Datei im Ordner Downloads. Überprüfen Sie es und extrahieren Sie diejdk-7u71-linux-x64.gz Datei mit den folgenden Befehlen.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 

$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz

Schritt 3

Um Java allen Benutzern zur Verfügung zu stellen, müssen Sie es an den Speicherort „/ usr / local /“ verschieben. Öffnen Sie root und geben Sie die folgenden Befehle ein.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit

Schritt 4

Zum Einrichten PATH und JAVA_HOME Variablen, fügen Sie die folgenden Befehle hinzu ~/.bashrc Datei.

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin

Übernehmen Sie nun alle Änderungen in das aktuell laufende System.

$ source ~/.bashrc

Schritt 5

Verwenden Sie die folgenden Befehle, um Java-Alternativen zu konfigurieren:

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Überprüfen Sie nun den Befehl java -version vom Terminal aus, wie oben erläutert.

Hadoop herunterladen

Laden Sie Hadoop 2.4.1 mit den folgenden Befehlen von Apache Software Foundation herunter und extrahieren Sie es.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit

Hadoop-Betriebsmodi

Nachdem Sie Hadoop heruntergeladen haben, können Sie Ihren Hadoop-Cluster in einem der drei unterstützten Modi betreiben:

  • Local/Standalone Mode - Nach dem Herunterladen von Hadoop auf Ihr System wird es standardmäßig in einem eigenständigen Modus konfiguriert und kann als einzelner Java-Prozess ausgeführt werden.

  • Pseudo Distributed Mode- Es handelt sich um eine verteilte Simulation auf einer einzelnen Maschine. Jeder Hadoop-Daemon wie HDFS, Garn, MapReduce usw. wird als separater Java-Prozess ausgeführt. Dieser Modus ist nützlich für die Entwicklung.

  • Fully Distributed Mode- Dieser Modus ist vollständig verteilt, wobei mindestens zwei oder mehr Computer als Cluster vorhanden sind. Wir werden in den kommenden Kapiteln ausführlich auf diesen Modus eingehen.

Hadoop im Standalone-Modus installieren

Hier werden wir die Installation von diskutieren Hadoop 2.4.1 im Standalone-Modus.

Es werden keine Daemons ausgeführt und alles wird in einer einzigen JVM ausgeführt. Der Standalone-Modus eignet sich zum Ausführen von MapReduce-Programmen während der Entwicklung, da sie einfach getestet und debuggt werden können.

Hadoop einrichten

Sie können Hadoop-Umgebungsvariablen festlegen, indem Sie die folgenden Befehle an anhängen ~/.bashrc Datei.

export HADOOP_HOME=/usr/local/hadoop

Bevor Sie fortfahren, müssen Sie sicherstellen, dass Hadoop einwandfrei funktioniert. Geben Sie einfach den folgenden Befehl ein:

$ hadoop version

Wenn mit Ihrem Setup alles in Ordnung ist, sollten Sie das folgende Ergebnis sehen:

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4

Dies bedeutet, dass das Standalone-Modus-Setup Ihres Hadoop einwandfrei funktioniert. Standardmäßig ist Hadoop so konfiguriert, dass es in einem nicht verteilten Modus auf einem einzelnen Computer ausgeführt wird.

Beispiel

Schauen wir uns ein einfaches Beispiel für Hadoop an. Die Hadoop-Installation liefert das folgende Beispiel für eine MapReduce-JAR-Datei, die grundlegende Funktionen von MapReduce bietet und zur Berechnung des Pi-Werts, der Wortanzahl in einer bestimmten Liste von Dateien usw. verwendet werden kann.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

Lassen Sie uns ein Eingabeverzeichnis haben, in dem wir einige Dateien pushen. Unsere Anforderung besteht darin, die Gesamtzahl der Wörter in diesen Dateien zu zählen. Um die Gesamtzahl der Wörter zu berechnen, müssen wir unser MapReduce nicht schreiben, vorausgesetzt, die JAR-Datei enthält die Implementierung für die Wortanzahl. Sie können andere Beispiele mit derselben JAR-Datei ausprobieren. Geben Sie einfach die folgenden Befehle ein, um die unterstützten MapReduce-Funktionsprogramme anhand der Datei hadoop-mapreduce-examples-2.2.0.jar zu überprüfen.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar

Schritt 1

Erstellen Sie temporäre Inhaltsdateien im Eingabeverzeichnis. Sie können dieses Eingabeverzeichnis überall dort erstellen, wo Sie arbeiten möchten.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input

Es werden die folgenden Dateien in Ihrem Eingabeverzeichnis angezeigt -

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt

Diese Dateien wurden aus dem Ausgangsverzeichnis der Hadoop-Installation kopiert. Für Ihr Experiment können Sie verschiedene und große Dateigruppen haben.

Schritt 2

Starten wir den Hadoop-Prozess, um die Gesamtzahl der Wörter in allen im Eingabeverzeichnis verfügbaren Dateien wie folgt zu zählen:

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output

Schritt 3

Schritt 2 führt die erforderliche Verarbeitung durch und speichert die Ausgabe in der Datei output / part-r00000, die Sie mit - überprüfen können.

$cat output/*

Es werden alle Wörter zusammen mit ihrer Gesamtzahl aufgelistet, die in allen im Eingabeverzeichnis verfügbaren Dateien verfügbar sind.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Installieren von Hadoop im Pseudo Distributed Mode

Führen Sie die folgenden Schritte aus, um Hadoop 2.4.1 im pseudoverteilten Modus zu installieren.

Schritt 1 - Einrichten von Hadoop

Sie können Hadoop-Umgebungsvariablen festlegen, indem Sie die folgenden Befehle an anhängen ~/.bashrc Datei.

export HADOOP_HOME=/usr/local/hadoop 
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_INSTALL=$HADOOP_HOME

Übernehmen Sie nun alle Änderungen in das aktuell laufende System.

$ source ~/.bashrc

Schritt 2 - Hadoop-Konfiguration

Sie finden alle Hadoop-Konfigurationsdateien unter dem Speicherort "$ HADOOP_HOME / etc / hadoop". Es ist erforderlich, Änderungen an diesen Konfigurationsdateien entsprechend Ihrer Hadoop-Infrastruktur vorzunehmen.

$ cd $HADOOP_HOME/etc/hadoop

Um Hadoop-Programme in Java zu entwickeln, müssen Sie die Java-Umgebungsvariablen in zurücksetzen hadoop-env.sh Datei durch Ersetzen JAVA_HOME Wert mit dem Speicherort von Java in Ihrem System.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Im Folgenden finden Sie eine Liste der Dateien, die Sie bearbeiten müssen, um Hadoop zu konfigurieren.

core-site.xml

Das core-site.xml Die Datei enthält Informationen wie die für die Hadoop-Instanz verwendete Portnummer, den für das Dateisystem zugewiesenen Speicher, das Speicherlimit zum Speichern der Daten und die Größe der Lese- / Schreibpuffer.

Öffnen Sie die Datei core-site.xml und fügen Sie die folgenden Eigenschaften zwischen den Tags <configuration>, </ configuration> hinzu.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

hdfs-site.xml

Das hdfs-site.xmlDie Datei enthält Informationen wie den Wert der Replikationsdaten, den Namensknotenpfad und den Datenknotenpfad Ihrer lokalen Dateisysteme. Dies ist der Ort, an dem Sie die Hadoop-Infrastruktur speichern möchten.

Nehmen wir die folgenden Daten an.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Öffnen Sie diese Datei und fügen Sie die folgenden Eigenschaften zwischen den Tags <configuration> </ configuration> in dieser Datei hinzu.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

Note - In der obigen Datei sind alle Eigenschaftswerte benutzerdefiniert und Sie können Änderungen entsprechend Ihrer Hadoop-Infrastruktur vornehmen.

yarn-site.xml

Diese Datei wird verwendet, um Garn in Hadoop zu konfigurieren. Öffnen Sie die Datei yarn-site.xml und fügen Sie die folgenden Eigenschaften zwischen den Tags <configuration>, </ configuration> in dieser Datei hinzu.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

Diese Datei wird verwendet, um anzugeben, welches MapReduce-Framework wir verwenden. Standardmäßig enthält Hadoop eine Vorlage von yarn-site.xml. Zunächst muss die Datei von kopiert werdenmapred-site.xml.template zu mapred-site.xml Datei mit dem folgenden Befehl.

$ cp mapred-site.xml.template mapred-site.xml

Öffnen mapred-site.xml Datei und fügen Sie die folgenden Eigenschaften zwischen den Tags <configuration>, </ configuration> in dieser Datei hinzu.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Überprüfen der Hadoop-Installation

Die folgenden Schritte werden verwendet, um die Hadoop-Installation zu überprüfen.

Schritt 1 - Einrichtung des Namensknotens

Richten Sie den Namensknoten mit dem Befehl "hdfs namenode -format" wie folgt ein.

$ cd ~ 
$ hdfs namenode -format

Das erwartete Ergebnis ist wie folgt.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Schritt 2 - Überprüfen von Hadoop dfs

Der folgende Befehl wird verwendet, um dfs zu starten. Durch Ausführen dieses Befehls wird Ihr Hadoop-Dateisystem gestartet.

$ start-dfs.sh

Die erwartete Ausgabe ist wie folgt:

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Schritt 3 - Überprüfen des Garnskripts

Der folgende Befehl wird verwendet, um das Garnskript zu starten. Wenn Sie diesen Befehl ausführen, werden Ihre Garn-Dämonen gestartet.

$ start-yarn.sh

Die erwartete Ausgabe wie folgt -

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Schritt 4 - Zugriff auf Hadoop über den Browser

Die Standardportnummer für den Zugriff auf Hadoop ist 50070. Verwenden Sie die folgende URL, um Hadoop-Dienste im Browser abzurufen.

http://localhost:50070/

Schritt 5 - Überprüfen Sie alle Anwendungen für Cluster

Die Standardportnummer für den Zugriff auf alle Anwendungen des Clusters lautet 8088. Verwenden Sie die folgende URL, um diesen Dienst aufzurufen.

http://localhost:8088/