Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Hadoop-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab7 Min. Lesezeit6 Befehle

Was du machst

Hadoop speichert eine sehr große Datei, indem es sie in Blöcke schneidet und auf viele Maschinen verteilt. Es verarbeitet sie dort, wo die Blöcke liegen. HDFS ist das Dateisystem: ein NameNode, der weiß, welche Blöcke zu welcher Datei gehören, und DataNodes, die sie speichern. MapReduce ist die Art der Verarbeitung: Jede Maschine zählt ihren eigenen Teil, und die Zahlen werden zusammengezählt. Dein Lab ist ein kleiner Cluster mit je einem davon. Du legst eine Datei hinein, liest sie zurück und schaust dir eine Wortzählung an.

Bevor du anfängst

Notiz

Drücke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Die Dienste heißen namenode, datanode, resourcemanager, nodemanager und client, und sie finden sich unter diesen Namen. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Wenn du zuschauen oder eigene Befehle tippen willst, drücke in der Leiste auf Terminal öffnen (neuer Tab).

1. Lege eine Datei in HDFS ab

Der erste Befehl schreibt einen Satz in eine Datei auf deinem eigenen Terminal. Der zweite schickt ihn an HDFS: Er fragt den NameNode, der mit der Adresse eines DataNodes antwortet. curl folgt ihr wegen des -L und sendet die Bytes dorthin. Wenn es klappt, gibt er nichts aus. Den Ordner /user/lab/mine gab es nicht, also hat HDFS ihn angelegt.

Befehl
echo 'one fish two fish red fish blue fish' > /tmp/fish.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
curl -s -L -X PUT -T /tmp/fish.txt 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=CREATE&user.name=lab'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Liste sie auf und lies sie zurück

Der erste Befehl listet den Ordner auf: Die Antwort ist JSON, und für fish.txt steht dort "length":37 (der Satz und sein Zeilenende) und "replication":1, also eine Kopie jedes Blocks, weil dieser Cluster nur einen DataNode hat. Der zweite liest die Datei zurück und gibt den Satz aus. Dieselbe Datei findest du auch auf der NameNode-Seite in deinem Browser, unter Utilities, Browse the file system.

Befehl
curl -s 'http://namenode:9870/webhdfs/v1/user/lab/mine?op=LISTSTATUS'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/mine/fish.txt?op=OPEN'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

3. Lies die Wortzählung

Als das Lab startete, hat der Cluster die eigene Wortzählung von Hadoop auf einem Beispielsatz laufen lassen und die Antwort in HDFS hinterlassen. Der erste Befehl gibt sie aus, eine Zeile für jedes Wort und seine Anzahl: the ist 4, dog und fox sind 2. Der zweite fragt den ResourceManager, wie der Auftrag gelaufen ist, und gibt "finalStatus":"SUCCEEDED" aus. Dein Terminal hat keinen Befehl hadoop, also kann es keine Zählung für deine eigene Datei starten: Diese Lektion liest die Zählung, die das Lab schon gemacht hat.

Befehl
curl -s -L 'http://namenode:9870/webhdfs/v1/user/lab/wordcount-out/part-r-00000?op=OPEN'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
curl -s http://resourcemanager:8088/ws/v1/cluster/apps | grep -o '"finalStatus":"[A-Z]*"'

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Das Lab besteht aus fünf Diensten und keinen Volumes, und nichts hier bewertet sich selbst: Die Lernenden geben den Pfad einer Datei ab, die sie in HDFS gelegt haben, dazu die Zeilen der daraus gemachten Wortzählung und einen Satz dazu, was NameNode und DataNode jeweils tun. Jede lernende Person wählt ihren eigenen Text, also unterscheiden sich die Antworten. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine ganz neue.

Über dieses Lab und seinen Quellcode: Hadoop-Lab: HDFS und MapReduce, mit einer Datei zum Ablegen und einer Wortzählung zum Lesen

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.