Hadoop - Multi Node Cluster


Advertisements

Diesem Kapitel werden die einrichten der Hadoop multi-node Cluster auf einer verteilten Umgebung.

Wie der gesamte Cluster nicht nachgewiesen werden kann, werden wir erklären, die Hadoop-Cluster-Umgebung mit Hilfe von drei Systemen (ein Master und zwei Slaves); gegeben unten sind ihre IP-Adressen.

  • Hadoop Master: 192.168.1.15 (hadoop-master)
  • Hadoop Slave: 192.168.1.16 (hadoop-slave-1)
  • Hadoop Slave: 192.168.1.17 (hadoop-slave-2)

folgen die Schritte gegebenen unten zu haben Hadoop multi- node Cluster Setup.

Installieren von Java

Java ist die Haupt- Voraussetzung für Hadoop. Zunächst einmal sollten Sie die Existenz von Java in Ihrem System verwendung "java -version" verifizieren. Die Syntax der Java-Version Befehl ist unten angegeben.

$ java -version

Wenn alles werke Geldbuße es wird Ihnen 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 ist nicht in Ihrem System installiert ist, befolgen Sie die angegebenen Schritte für die Installation Java.

Schritt 1

Herunterladen Java (JDK - X64.tar.gz), indem den Besuch Sie den folgenden Link http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Dann jdk-7u71-linux-x64.tar.gz wird sein herunterladen in Ihre System.

Schritt 2

In der Regel werden Sie die heruntergeladene Java-Datei im Download-Ordner zu finden. Verifizieren Sie es und extrahieren Sie die jdk-7u71-linux-x64.gz Datei verwendung 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

Zu machen Java verfügbar für alle Benutzer verfügbar , müssen Sie sie auf den Standort "/ usr / local /" zu bewegen. Öffnen Sie die Wurzel und die folgenden Befehle ein.

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

Schritt 4

Für Einstellung herauf PATH und JAVA_HOME Variablen, fügen Sie die folgenden Befehle ein, um ~/.bashrc Datei.

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

Nun verifizieren Sie die java -version Befehl vom Terminal wie oben erklärt. Folgen Sie den obigen prozess, und installieren Sie Java in allen Ihre Cluster-Knoten.

Erstellen von Benutzerkonten

Erstellen Sie eine Systembenutzerkonto auf beiden Master- und Slave-Systeme, zu verwendet die Hadoop-Installation.

# useradd hadoop 
# passwd hadoop

Mapping die Knoten

Sie müssen zu bearbeiten hosts Datei in /etc/Ordnern auf allen Knoten,Gibt die IP-Adresse eines jeden Systems,gefolgt von ihren Hostnamen.

# vi /etc/hosts
enter the following lines in the /etc/hosts file.
192.168.1.109 hadoop-master 
192.168.1.145 hadoop-slave-1 
192.168.56.1 hadoop-slave-2

Konfigurieren Key Based Anmelden

Einrichten ssh in jeder Knoten, so dass sie miteinander ohne jeder Eingabeaufforderung für das Kennwort kommunizieren können.

# su hadoop 
$ ssh-keygen -t rsa 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub tutorialspoint@hadoop-master 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp1@hadoop-slave-1 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp2@hadoop-slave-2 
$ chmod 0600 ~/.ssh/authorized_keys 
$ exit

Installieren von Hadoop

In der Master-Server, herunterladen und installieren Hadoop mit den folgenden Befehlen.

# mkdir /opt/hadoop 
# cd /opt/hadoop/ 
# wget http://apache.mesi.com.ar/hadoop/common/hadoop-1.2.1/hadoop-1.2.0.tar.gz 
# tar -xzf hadoop-1.2.0.tar.gz 
# mv hadoop-1.2.0 hadoop
# chown -R hadoop /opt/hadoop 
# cd /opt/hadoop/hadoop/

Konfigurieren Hadoop

Sie haben zu konfiguriert Hadoop-Server, indem machen Sie die folgenden Änderungen,als nachstehend gegeben.

core-site.xml

Öffnen Sie die core-site.xml Datei und bearbeiten Sie sie wie unten gezeigt.

<configuration>
   <property> 
      <name>fs.default.name</name> 
      <value>hdfs://hadoop-master:9000/</value> 
   </property> 
   <property> 
      <name>dfs.permissions</name> 
      <value>false</value> 
   </property> 
</configuration>

hdfs-site.xml

Öffnen Sie die hdfs-site.xml Datei und bearbeiten Sie sie wie unten gezeigt.

<configuration>
   <property> 
      <name>dfs.data.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name/data</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.name.dir</name> 
      <value>/opt/hadoop/hadoop/dfs/name</value> 
      <final>true</final> 
   </property> 

   <property> 
      <name>dfs.replication</name> 
      <value>1</value> 
   </property> 
</configuration>

mapred-site.xml

Öffnen Sie die mapred-site.xml Datei und bearbeiten Sie sie wie unten gezeigt.

<configuration>
   <property> 
      <name>mapred.job.tracker</name> 
      <value>hadoop-master:9001</value> 
   </property> 
</configuration>

hadoop-env.sh

Öffnen Sie die hadoop-env.sh Datei und bearbeiten JAVA_HOME, HADOOP_CONF_DIR und HADOOP_OPTS wie unten gezeigt.

Hinweis:Legen Sie die JAVA_HOME als pro Ihre Systemkonfiguration.

export JAVA_HOME=/opt/jdk1.7.0_17 export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true export HADOOP_CONF_DIR=/opt/hadoop/hadoop/conf

Installieren von Hadoop auf Slave-Servern

Installieren Hadoop auf alle Slave-Server,indem folgende gegebenen Befehle.

# su hadoop 
$ cd /opt/hadoop 
$ scp -r hadoop hadoop-slave-1:/opt/hadoop 
$ scp -r hadoop hadoop-slave-2:/opt/hadoop

Konfigurieren Hadoop auf Meister-Server

Öffnen Sie den Meister-Server und konfigurieren Sie es, indem folgende gegebenen Befehle.

# su hadoop 
$ cd /opt/hadoop/hadoop

Konfigurieren Meister Knoten

$ vi etc/hadoop/masters
hadoop-master

Konfigurieren Slave Knoten

$ vi etc/hadoop/slaves
hadoop-slave-1 
hadoop-slave-2

Formatname Knoten auf Hadoop Meister

# su hadoop 
$ cd /opt/hadoop/hadoop 
$ bin/hadoop namenode –format
11/10/14 10:58:07 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG: host = hadoop-master/192.168.1.109 
STARTUP_MSG: args = [-format] 
STARTUP_MSG: version = 1.2.0 
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1479473; compiled by 'hortonfo' on Mon May 6 06:59:37 UTC 2013 
STARTUP_MSG: java = 1.7.0_71 ************************************************************/ 11/10/14 10:58:08 INFO util.GSet: Computing capacity for map BlocksMap editlog=/opt/hadoop/hadoop/dfs/name/current/edits
………………………………………………….
………………………………………………….
…………………………………………………. 11/10/14 10:58:08 INFO common.Storage: Storage directory /opt/hadoop/hadoop/dfs/name has been successfully formatted. 11/10/14 10:58:08 INFO namenode.NameNode: 
SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop-master/192.168.1.15 ************************************************************/

Beginnend Hadoop Dienstleistungen

Der folgende Befehl ist zu starten alle Hadoop Dienste auf die Hadoop-Meister.

$ cd $HADOOP_HOME/sbin
$ start-all.sh

Hinzufügen eines neuen DataNode im Hadoop Cluster

Da unten sind die Schritte zu folgen für das Hinzufügen neuer Knoten zu einem Hadoop-Cluster.

Netzwerk

Fügen Sie neue Knoten zu einem vorhandenen Hadoop Cluster mit einem geeigneten Netzwerkkonfiguration. annehmen Sie die folgenden Netzwerkkonfiguration.

Für Neue Knoten-Konfiguration:

IP address : 192.168.1.103 
netmask : 255.255.255.0
hostname : slave3.in

Hinzufügen von Benutzer und SSH-Zugriff

hinzufügen Benutzer

Auf einem neuen Knoten, fügen Sie "Hadoop" Benutzer und legen Sie das Kennwort auf Hadoop Benutzers zu "hadoop123" oder was Sie wollen, indem Sie die folgenden Befehle ein.

useradd hadoop
passwd hadoop

einrichten Kennwort weniger Konnektivität vom Master an den neuen Slave.

ausführen Sie die folgenden auf dem Master.

mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh 
ssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsa 
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys
Copy the public key to new slave node in hadoop user $HOME directory
scp $HOME/.ssh/id_rsa.pub hadoop@192.168.1.103:/home/hadoop/

ausführen Sie die folgenden auf dem Master

Einloggen, zu Hadoop. Wenn nicht, Einloggen zu Hadoop Benutzer.

su hadoop ssh -X hadoop@192.168.1.103

Kopieren Sie den Inhalt der öffentlichen Schlüssel in die Datei "$HOME/.ssh/authorized_keys" und dann ändern Sie die Berechtigung für das gleiche durch ausführen die folgenden Befehle.

cd $HOME
mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh
cat id_rsa.pub >>$HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys

Überprüfen Sie SSH-Login aus dem MasterMaschine. Überprüfen Sie nun, ob Sie kann ssh auf den neuen Knoten ohne Passwort aus dem Master.

ssh hadoop@192.168.1.103 or hadoop@slave3

Satz Hostname des neuen Knotens

Sie können den Hostnamen in der Datei festgelegt/etc/sysconfig/network

On new slave3 machine
NETWORKING=yes 
HOSTNAME=slave3.in

Zu machen die Änderungen wirksam werden, entweder den Maschine neustart oder ausführen den Hostnamen Befehl um eine neue Maschine mit dem jeweilige Hostnamen (Neustart ist eine gute Option).

Auf Slave3 Knoten Maschine:

hostname slave3.in

Aktualisierung /etc/hosts auf allen Rechnern von die Clusters mit den folgenden Zeilen:

192.168.1.102 slave3.in slave3

Nun versuchen, die Maschine mit Hostnamen anpingen um zu überprüfen ob es sich um lösen zu IP oder nicht.

Am neuer Knoten Maschine:

ping master.in

Starten Sie die DataNode auf neu Node

Starten Sie die DataNode Daemon manuell mit $HADOOP_HOME/bin/hadoop-daemon.sh script. Es wird automatisch an den Master (NameNode) und kommen Sie mit den Cluster. Wir sollten auch den neuen Knoten in die Datei conf / Slaves im Master-Server hinzuzufügen. Die skriptbasierte Befehle werden den neuen Knoten zu erkennen.

einloggen zu neuen Knoten

su hadoop or ssh -X hadoop@192.168.1.103

Start HDFS auf einem neu hinzugefügte Slave-Knoten, indem Sie den folgenden Befehl

./bin/hadoop-daemon.sh start datanode

Überprüfen Sie die Ausgabe des Befehls jps auf einem neuen Knoten. Es sieht wie folgt aus.

$ jps
7141 DataNode
10312 Jps

Entfernen eines DataNode vom Hadoop Cluster

Wir können einen Knoten aus einem Cluster im laufenden Betrieb zu entfernen, während er ausgeführt wird, ohne jeder Datenverlust. HDFS bietet eine Außerbetriebnahme Funktion, die dafür sorgt, dass das Entfernen eines Knotens wird sicher durchgeführt. Um es zu nutzen, folgen die Schritte wie unten angegeben:

Schritt 1: einloggen zu meistern

Login zu Master-Maschine Benutzer, wo Hadoop installiert ist.

$ su hadoop

Schritt 2: Ändern der Clusterkonfiguration

Ein Ausschlussdatei muss vor dem Start des Cluster konfiguriert werden. Fügen Sie einen Schlüssel mit dem Namen dfs.hosts.exclude zu unseren $HADOOP_HOME/etc/hadoop/hdfs-site.xml Datei. Die Wert mit diesem Schlüssel zugeordneten stellt den vollständigen Pfad zu einer Datei auf dem Namenode ist lokalen Datei system welche eine Liste von Maschinen, die nicht berechtigt sind, Verbindung auf HDFS enthält.

Fügen Sie beispielsweise die folgenden Zeilen zuetc/hadoop/hdfs-site.xml Datei.

<property> 
   <name>dfs.hosts.exclude</name> 
   <value>/home/hadoop/hadoop-1.2.1/hdfs_exclude.txt</value> 
   <description>DFS exclude</description> 
</property>

Schritt 3: Bestimmen Hosts zu Außerbetriebnahme

Jede Maschine Außerbetriebnahme werden sollten, um die Datei identifiziert von der hdfs_exclude.txt, einen Domain-Namen pro Zeile hinzugefügt werden. Dies wird ihnen eine Verbindung zum NameNode verhindern. Inhalt des "/ home / Hadoop / Hadoop-1.2.1 / hdfs_exclude.txt" Datei ist unten dargestellt, wenn Sie DataNode2 entfernen wollen.

slave2.in

Schritt 4: Force Konfiguration neuladen

Führen Sie den Befehl "$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes" ohne Anführungszeichen.

$ $HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes

Dies wird die NameNode zwingen, wieder lesen die Konfiguration, einschließlich der neu aktualisierte Datei 'schließt. Es werden die Knoten über einen Zeitraum außer Betrieb, so dass genügend Zeit für die Blöcke jedes Knotens, um auf Maschinen, die geplant sind, aktiv zu bleiben, repliziert werden.

Ein slave2.in , überprüfen Sie die jps Befehlsausgabe. Nach einiger Zeit werden Sie sehen, die DataNode Prozess ist automatisch ausgeschaltet.

Schritt 5: schließen Knoten

Nach der Stilllegung abgeschlossen ist, die außer Betrieb genommen Hardware sicher zur Wartung heruntergefahren werden. Führen Sie den Befehl Bericht dfsadmin um den Status der Stilllegung zu überprüfen. Mit dem folgenden Befehl wird der Status der Stilllegung Knoten und die angeschlossenen Knoten zum Cluster zu beschreiben.

$ $HADOOP_HOME/bin/hadoop dfsadmin -report

Schritt 6: Bearbeiten schließt Datei erneut

einmal die Maschinen sind Außerbetriebnahme, können sie von der "ausschließt" Datei entfernt werden. Laufen "$ HADOOP_HOME / bin / Hadoop dfsadmin -refreshNodes" wieder wird gelesen das ausschließt Datei zurück in die NameNode; erlaubt so dass die Datanodes dem Cluster sich wieder anschließen, nachdem die Wartung abgeschlossen ist, oder zusätzliche Kapazitäten im Cluster wieder benötigt, etc.

Wichtiger Hinweis: Wenn das obige Verfahren gefolgt und die Tasktracker Prozess wird noch auf dem Knoten ausgeführt, muss sie abgeschaltet werden. Eine Möglichkeit ist die Maschine abgeschaltet werden, wie wir in den obigen Schritten taten. Der Meister wird der Prozess automatisch erkennen und wird für tot erklären. Es besteht keine Notwendigkeit, die gleichen Verfahren zur Entfernung des Tasktracker da es nicht viel entscheidender, verglichen mit dem DataNode folgen. DataNode enthält die Daten, die Sie sicher und ohne Datenverlust entfernt werden soll.

Die Tasktracker kann sein Lauf oder Abschaltung im laufenden Betrieb durch den folgenden Befehl an jedem Punkt der Zeit ausgeführt werden.

$ $HADOOP_HOME/bin/hadoop-daemon.sh stop tasktracker $HADOOP_HOME/bin/hadoop-daemon.sh start tasktracker
Advertisements