1. SSH einrichten
Installieren Sie SSH-bezogene Softwarepakete:
Kopieren Sie den Code wie folgt: sudo apt-get install openssh-client openssh-server
Starten/beenden Sie dann sshd mit einem der folgenden beiden Befehle:
Kopieren Sie den Code wie folgt: sudo /etc/init.d/ssh start|stop
sudo service ssh start|stop
Wenn sshd erfolgreich gestartet wurde, können wir Ergebnisse ähnlich den folgenden sehen:
Kopieren Sie den Code wie folgt: $ ps -e |
2766 ? 00:00:00 SSH-Agent
10558 ? 00:00:00 sshd
Wenn Sie zu diesem Zeitpunkt den folgenden SSH-Befehl ausführen, um sich am Computer anzumelden, werden Sie aufgefordert, ein Kennwort einzugeben:
Kopieren Sie den Code wie folgt: ssh localhost
Jetzt müssen wir nur noch dafür sorgen, dass kein Passwort erforderlich ist:
Kopieren Sie den Code wie folgt: $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #Ein leerer Passwort-SSH-Schlüssel
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Das ist es. Wenn es immer noch nicht funktioniert, sind möglicherweise die Berechtigungen für die Schlüsseldatei falsch festgelegt.
2. Konfigurieren Sie Hadoop
Entpacken Sie hadoop-1.2.1 nach ~/ und erstellen Sie das Verzeichnis hadoop-env unter ~/. Erstellen Sie weiterhin die folgende Verzeichnisstruktur unter hadoop-env:
├── dfs
│ ├── Kontrollpunkt1
│ ├── Daten1
│ ├── Daten2
│ └── Name1
└── Test
└── Eingabe
Konfigurationsdatei hadoop-1.2.1/conf/core-site.xml:
Kopieren Sie den Codecode wie folgt:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Fügen Sie ortsspezifische Eigenschaftsüberschreibungen in diese Datei ein -->
<Konfiguration>
<Eigenschaft>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<final>wahr</final>
</property>
</configuration>
fs.default.name gibt die HDFS-URI an. Wenn im Wert kein Port angegeben ist, ist der Standardwert 8020.
Konfigurationsdatei hadoop-1.2.1/conf/hdfs-site.xml:
Kopieren Sie den Codecode wie folgt:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Fügen Sie ortsspezifische Eigenschaftsüberschreibungen in diese Datei ein -->
<Konfiguration>
<Eigenschaft>
<name>dfs.name.dir</name>
<value>~/hadoop-env/dfs/name1</value>
<final>wahr</final>
</property>
<Eigenschaft>
<name>dfs.data.dir</name>
<value>~/hadoop-env/dfs/data1,~/hadoop-env/dfs/data2</value>
<final>wahr</final>
</property>
<Eigenschaft>
<name>fs.checkpoint.dir</name>
<value>~/hadoop-env/dfs/checkpoint1</value>
<final>wahr</final>
</property>
</configuration>
dfs.name.dir gibt das Verzeichnis an, in dem der Namensknoten Metadaten speichert. Diese Verzeichnisse müssen durch Kommas getrennt werden. dfs.data.dir gibt das Verzeichnis an, in dem der Datenknoten Daten speichert. checkpoint.dir gibt das Verzeichnis an, in dem der zusätzliche Namensknoten Prüfpunkte speichert.
Konfigurationsdatei hadoop-1.2.1/conf/mapred-site.xml:
Kopieren Sie den Codecode wie folgt:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Fügen Sie ortsspezifische Eigenschaftsüberschreibungen in diese Datei ein -->
<Konfiguration>
<Eigenschaft>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<final>wahr</final>
</property>
</configuration>
3. Testen
Erstes HDFS-Format:
Kopieren Sie den Code wie folgt: ./hadoop-1.2.1/bin/hadoop namenode -format
Starten Sie HDFS- und MapReduce-Prozesse:
Kopieren Sie den Codecode wie folgt:
$ ./hadoop-1.2.1/bin/start-dfs.sh
$ ./hadoop-1.2.1/bin/start-mapred.sh
Wenn beim Start ein Fehler gemeldet wird, z. B. „localhost: Error: JAVA_HOME is not set.“, müssen Sie JAVA_HOME in die Datei ./hadoop-1.2.1/conf/hadoop-env.sh exportieren, zum Beispiel:
exportieren Sie JAVA_HOME=~/jdk1.7.0_25
So überprüfen Sie, ob der Start erfolgreich war: Die erste Methode ist die Verwendung des jps-Befehls (Java Virtual Machine Process Status Tool). Die Ausgabe sollte etwa wie folgt aussehen:
Kopieren Sie den Codecode wie folgt:
$ jps
13592 DataNode
13728 SecondaryNameNode
13837 JobTracker
12864 NameNode
13955 TaskTracker
16069Jps
Die zweite Methode besteht darin, sich beim Browser unter http://localhost:50030 anzumelden, um den Jobtracker anzuzeigen, und unter http://localhost:50070, um den Namensknoten anzuzeigen. Wenn Sie Umgehungssoftware verwenden, wird beim Zugriff möglicherweise eine Fehlermeldung angezeigt. Die einfachste Lösung besteht darin, die Umgehungssoftware zu deaktivieren. Eine andere Möglichkeit besteht darin, die Protokolldatei anzuzeigen.
Jetzt erstellen wir zwei Dateien im Verzeichnis ~/hadoop-env/test/input:
Kopieren Sie den Codecode wie folgt:
$ echo "Hallo Welt" > test1.txt
$ echo "hi,world" > test2.txt
Importieren Sie diese beiden Dateien in HDFS:
Kopieren Sie den Codecode wie folgt:
./hadoop-1.2.1/bin/hadoop dfs -put hadoop-env/test/input/output/
Überprüfen:
Kopieren Sie den Codecode wie folgt:
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /
2 Artikel gefunden
drwxr-xr-x – Benutzer-Supergruppe 0 22.10.2013 22:07 /test
drwxr-xr-x – Benutzer-Supergruppe 0 22.10.2013 21:58 /tmp
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /test
2 Artikel gefunden
-rw-r--r-- 3 Benutzer-Supergruppe 12 22.10.2013 22:07 /test/test1.txt
-rw-r--r-- 3 Benutzer-Supergruppe 9 22.10.2013 22:07 /test/test2.txt
OK, die Konfiguration ist abgeschlossen.
Hinweis: Das in diesem Artikel verwendete System ist Linux Mint 15 64bit und Hadoop verwendet Version 1.2.1.