Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt

HadoopHadoopBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Hadoop ist ein leistungsstarkes Open-Source-Framework für die verteilte Speicherung und Verarbeitung großer Datensätze. Das Hadoop Distributed File System (HDFS) ist eine entscheidende Komponente, die eine effiziente Datenverwaltung und -verarbeitung ermöglicht. In diesem Tutorial werden wir untersuchen, wie Sie den Fehler "Datei nicht gefunden" beheben können, der beim Kopieren von Dateien in das HDFS auftreten kann, um ein reibungsloses Hadoop-Erlebnis zu gewährleisten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHDFSGroup(["Hadoop HDFS"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("HDFS Setup") hadoop/HadoopHDFSGroup -.-> hadoop/fs_cat("FS Shell cat") hadoop/HadoopHDFSGroup -.-> hadoop/fs_ls("FS Shell ls") hadoop/HadoopHDFSGroup -.-> hadoop/fs_put("FS Shell copyToLocal/put") hadoop/HadoopHDFSGroup -.-> hadoop/fs_get("FS Shell copyFromLocal/get") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-415778{{"Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt"}} hadoop/fs_cat -.-> lab-415778{{"Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt"}} hadoop/fs_ls -.-> lab-415778{{"Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt"}} hadoop/fs_put -.-> lab-415778{{"Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt"}} hadoop/fs_get -.-> lab-415778{{"Wie man den Fehler 'Datei nicht gefunden' beim Kopieren von Dateien in das HDFS behebt"}} end

Einführung in HDFS

Das Hadoop Distributed File System (HDFS) ist ein verteiltes Dateisystem, das entwickelt wurde, um große Datenmengen auf mehreren Maschinen zu speichern und zu verarbeiten. Es ist eine Kernkomponente des Apache Hadoop - Ökosystems und wird verwendet, um zuverlässige, skalierbare und fehlertolerante Speicherlösungen für Big - Data - Anwendungen bereitzustellen.

HDFS folgt einer Master - Slave - Architektur, bei der der Master - Knoten NameNode und die Slave - Knoten DataNodes genannt werden. Der NameNode verwaltet die Dateisystemmetadaten, während die DataNodes die eigentlichen Datenblöcke speichern.

Um mit HDFS zu interagieren, können Benutzer die Hadoop - Kommandozeilenschnittstelle (CLI) oder Programmier - APIs in verschiedenen Sprachen wie Java, Python und Scala verwenden.

Hier ist ein Beispiel, wie Sie den Inhalt des HDFS - Rootverzeichnisses mithilfe der Hadoop - CLI auf einem Ubuntu 22.04 - System auflisten können:

$ hadoop fs -ls /
Found 2 items
drwxr-xr-x   - user supergroup          0 2023-04-28 10:30 /user
drwxr-xr-x   - user supergroup          0 2023-04-28 10:30 /tmp

In diesem Beispiel listet der Befehl hadoop fs -ls / den Inhalt des HDFS - Rootverzeichnisses auf, das die Verzeichnisse /user und /tmp umfasst.

HDFS bietet mehrere wichtige Funktionen, darunter:

  • Skalierbarkeit: HDFS kann durch Hinzufügen weiterer DataNodes zum Cluster skalieren, um Petabytes von Daten zu speichern und zu verarbeiten.
  • Fehlertoleranz: HDFS repliziert automatisch Datenblöcke auf mehreren DataNodes, um die Datenverfügbarkeit auch bei Hardwareausfällen sicherzustellen.
  • Hoher Durchsatz: HDFS ist für den Zugriff auf Daten mit hohem Durchsatz konzipiert, was es für die Batchverarbeitung großer Datensätze geeignet macht.
  • Kosteneffizienz: HDFS läuft auf kostengünstiger Hardware, was es zu einer kosteneffizienten Lösung für die datenintensive Speicherung und Verarbeitung macht.

HDFS wird häufig in Big - Data - Anwendungen wie Data Warehousing, maschinellem Lernen und Echtzeitdatenverarbeitung eingesetzt, bei denen große Datenmengen effizient gespeichert und verarbeitet werden müssen.

Behebung des Fehlers "Datei nicht gefunden"

Beim Kopieren von Dateien in das HDFS können Sie den Fehler "Datei nicht gefunden" erhalten. Dieser Fehler kann aus verschiedenen Gründen auftreten, wie z. B. falsche Dateipfade, Berechtigungsfehler oder die Tatsache, dass die Datei nicht am angegebenen Ort existiert. Lassen Sie uns einige häufige Schritte zur Fehlerbehebung untersuchen, um dieses Problem zu beheben.

Überprüfen Sie den Dateipfad

Stellen Sie sicher, dass der Dateipfad, den Sie zum Kopieren der Datei in das HDFS verwenden, korrekt ist. Überprüfen Sie noch einmal den Dateinamen, die Verzeichnisstruktur und alle relativen oder absoluten Pfade, die Sie angeben.

Hier ist ein Beispiel, wie Sie den Dateipfad auf einem Ubuntu 22.04 - System überprüfen können:

$ hadoop fs -ls /user/data/input.txt
ls: `/user/data/input.txt': No such file or directory

In diesem Fall existiert die Datei input.txt nicht im Verzeichnis /user/data im HDFS.

Überprüfen Sie die Dateiberechtigungen

Stellen Sie sicher, dass Sie die erforderlichen Berechtigungen haben, um die Datei im HDFS zuzugreifen und zu kopieren. Der Benutzer, der die Hadoop - Befehle ausführt, sollte Lese - und Schreibberechtigungen für das Zielverzeichnis im HDFS haben.

Sie können die Berechtigungen mit dem Befehl hadoop fs -ls überprüfen:

$ hadoop fs -ls /user
Found 1 items
drwxr-xr-x   - user supergroup          0 2023-04-28 10:30 /user

In diesem Beispiel hat der Benutzer Lese - und Ausführungsberechtigungen (gekennzeichnet durch r-x) für das Verzeichnis /user.

Stellen Sie sicher, dass die Datei lokal existiert

Bevor Sie die Datei in das HDFS kopieren, stellen Sie sicher, dass die Datei auf dem lokalen Dateisystem existiert. Sie können den Befehl ls verwenden, um die Existenz der Datei zu überprüfen:

$ ls /home/user/data/input.txt
/home/user/data/input.txt

Wenn die Datei lokal nicht existiert, müssen Sie sie an den richtigen Ort hochladen, bevor Sie versuchen, sie in das HDFS zu kopieren.

Indem Sie diese Schritte zur Fehlerbehebung befolgen, sollten Sie in der Lage sein, den Fehler "Datei nicht gefunden" beim Kopieren von Dateien in das HDFS zu identifizieren und zu beheben.

Kopieren von Dateien in das HDFS

Sobald Sie verifiziert haben, dass die Datei existiert und Sie die erforderlichen Berechtigungen haben, können Sie mit dem Kopieren der Datei in das HDFS fortfahren. Die Hadoop - Kommandozeilenschnittstelle (CLI) bietet den Befehl hadoop fs -put zu diesem Zweck.

Kopieren einer einzelnen Datei in das HDFS

Um eine einzelne Datei vom lokalen Dateisystem in das HDFS zu kopieren, verwenden Sie den folgenden Befehl:

$ hadoop fs -put /home/user/data/input.txt /user/data/

In diesem Beispiel wird die Datei input.txt, die sich auf dem lokalen Dateisystem unter /home/user/data/ befindet, in das Verzeichnis /user/data/ im HDFS kopiert.

Kopieren mehrerer Dateien in das HDFS

Sie können auch mehrere Dateien in einem einzigen Befehl in das HDFS kopieren. Angenommen, Sie haben mehrere Dateien im Verzeichnis /home/user/data/, die Sie in das Verzeichnis /user/data/ im HDFS kopieren möchten:

$ hadoop fs -put /home/user/data/* /user/data/

Dieser Befehl kopiert alle Dateien im Verzeichnis /home/user/data/ in das Verzeichnis /user/data/ im HDFS.

Überprüfen der Dateikopie

Nachdem Sie die Datei(en) in das HDFS kopiert haben, können Sie den Befehl hadoop fs -ls verwenden, um zu überprüfen, ob die Datei(en) erfolgreich übertragen wurden:

$ hadoop fs -ls /user/data/
Found 2 items
-rw-r--r--   1 user supergroup       1024 2023-04-28 10:45 /user/data/file1.txt
-rw-r--r--   1 user supergroup       2048 2023-04-28 10:45 /user/data/file2.txt

Diese Ausgabe zeigt, dass zwei Dateien, file1.txt und file2.txt, in das Verzeichnis /user/data/ im HDFS kopiert wurden.

Indem Sie diese Schritte befolgen, können Sie Dateien erfolgreich vom lokalen Dateisystem in das HDFS kopieren und sicherstellen, dass Ihre Daten im Hadoop - Ökosystem gespeichert und zugänglich sind.

Zusammenfassung

Indem Sie die in diesem Hadoop - Tutorial beschriebenen Schritte befolgen, lernen Sie, wie Sie den Fehler "Datei nicht gefunden" beim Kopieren von Dateien in das HDFS beheben können. Mit diesem Wissen können Sie eine zuverlässige und effiziente Hadoop - Umgebung aufrechterhalten und Ihre Daten nahtlos mithilfe des Hadoop - Ökosystems verwalten und verarbeiten.