Wie man eine bestimmte Datei im HDFS-Dateisystem findet

HadoopHadoopBeginner
Jetzt üben

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

Einführung

In diesem Tutorial wird Ihnen der Prozess des Findens bestimmter Dateien im Hadoop Distributed File System (HDFS), einem grundlegenden Bestandteil der Hadoop-Ekosystem, erläutert. Ob Sie ein Hadoop-Entwickler oder -Administrator sind, das Verständnis, wie man in HDFS effektiv Dateien durchsucht und lokalisiert, ist eine entscheidende Fähigkeit.

Einführung in das Hadoop Distributed File System (HDFS)

Das Hadoop Distributed File System (HDFS) ist das primäre Datenspeichersystem, das von Apache Hadoop-Anwendungen verwendet wird. HDFS ist so konzipiert, um zuverlässige, skalierbare und fehler toleranten Speicher für große Datensätze bereitzustellen. Es ist ein verteiltes Dateisystem, das auf kommerziellen Hardware läuft und für die Batchverarbeitung von Daten optimiert ist.

HDFS-Architektur

HDFS folgt einem Master-Slave-Architektur, wobei der Masterknoten als NameNode und die Slaveknoten als DataNodes bezeichnet werden. Der NameNode ist für die Verwaltung des Dateisystemnamenspaces verantwortlich, einschließlich des Dateisystembaums und der Metadaten aller Dateien und Verzeichnisse. Die DataNodes sind für das Speichern und Abrufen von Datensperren auf dem lokalen Dateisystem verantwortlich.

graph TD NameNode -- Verwalten Sie den Dateisystemnamenraum --> DataNodes DataNodes -- Speichern und Abrufen von Datensperren --> NameNode

HDFS-Anwendungsfälle

HDFS wird in verschiedenen Big-Data-Anwendungen weit verbreitet eingesetzt, wie:

  • Big Data Analytics: HDFS wird verwendet, um große Datensätze für die Datenanalyse und maschinelles Lernen zu speichern und zu verarbeiten.
  • Datenaufnahme: HDFS wird als Ankunftszone für Daten aus verschiedenen Quellen wie Weblogs, Sensordatens und Sozialmedien-Daten verwendet.
  • Datenarchivierung: HDFS wird verwendet, um große Mengen an Daten für die langfristige Speicherung und Abruf zu speichern und zu archivieren.

HDFS-Befehlszeilen-Schnittstelle

HDFS bietet eine Befehlszeilen-Schnittstelle (CLI) zum Interagieren mit dem Dateisystem. Der Befehl hdfs wird verwendet, um verschiedene HDFS-Operationen auszuführen, wie das Erstellen von Verzeichnissen, das Hochladen und Herunterladen von Dateien und das Auflisten des Inhalts des Dateisystems.

Hier ist ein Beispiel dafür, wie Sie den Inhalt des HDFS-Wurzelverzeichnisses mit dem Befehl hdfs dfs -ls / auflisten:

$ hdfs dfs -ls /
Found 3 items
drwxr-xr-x   - user supergroup          0 2023-04-01 12:34 /user
drwxr-xr-x   - user supergroup          0 2023-04-01 12:34 /tmp
drwxr-xr-x   - user supergroup          0 2023-04-01 12:34 /apps

Dieser Befehl verbindet sich mit dem HDFS-NameNode, ruft die Verzeichnisauflistung ab und zeigt die Ergebnisse im Terminal an.

Um im HDFS-Dateisystem zu navigieren, können Sie die Befehlszeilen-Schnittstelle hdfs dfs verwenden. Hier sind einige häufige Befehle für die Navigation in HDFS:

  • hdfs dfs -ls [path]: Listet den Inhalt des angegebenen Verzeichnisses oder der Datei auf.
  • hdfs dfs -cd [path]: Wechselt das aktuelle Arbeitsverzeichnis zum angegebenen Pfad.
  • hdfs dfs -mkdir [path]: Erstellt ein neues Verzeichnis am angegebenen Pfad.
  • hdfs dfs -put [local_file] [hdfs_path]: Lädt eine lokale Datei in den angegebenen HDFS-Pfad hoch.
  • hdfs dfs -get [hdfs_file] [local_path]: Lädt eine Datei aus HDFS in das lokale Dateisystem herunter.

Suchen von Dateien in HDFS

Um Dateien in HDFS zu suchen, können Sie den Befehl hdfs dfs -find verwenden. Dieser Befehl ermöglicht es Ihnen, Dateien nach verschiedenen Kriterien zu suchen, wie Dateiname, Dateigröße und Änderungszeit.

Hier ist ein Beispiel dafür, wie Sie alle Dateien im Verzeichnis /user/data suchen, die die Erweiterung .csv haben:

$ hdfs dfs -find /user/data -name '*.csv'
/user/data/file1.csv
/user/data/file2.csv
/user/data/file3.csv

Sie können auch den Befehl hdfs dfs -du verwenden, um die Größe von Dateien und Verzeichnissen in HDFS zu erhalten. Dies kann nützlich sein, wenn Sie nach Dateien basierend auf der Größe suchen.

$ hdfs dfs -du /user/data
123456789 /user/data/file1.csv
987654321 /user/data/file2.csv
456789123 /user/data/file3.csv

Indem Sie die Befehle hdfs dfs -find und hdfs dfs -du kombinieren, können Sie Dateien in HDFS sowohl nach Namen als auch nach Größe suchen.

Praktische Techniken zum Finden von Dateien in HDFS

Verwenden von regulären Ausdrücken für die Dateisuche

Der Befehl hdfs dfs -find unterstützt die Verwendung von regulären Ausdrücken zur Suche nach Dateien in HDFS. Dies kann besonders nützlich sein, wenn Sie nach Dateien basierend auf komplexen Mustern suchen, wie Dateinamen, die einem bestimmten Format entsprechen.

Hier ist ein Beispiel dafür, wie Sie einen regulären Ausdruck verwenden, um alle Dateien im Verzeichnis /user/data zu suchen, die mit "file_" beginnen und einen numerischen Suffix haben:

$ hdfs dfs -find /user/data -regex '/user/data/file_[0-9]+\.csv'
/user/data/file_1.csv
/user/data/file_2.csv
/user/data/file_3.csv

Kombinieren von Suchkriterien

Sie können mehrere Suchkriterien kombinieren, um Ihre Suchergebnisse einzuschränken. Beispielsweise können Sie nach Dateien sowohl nach Namen als auch nach Größe suchen:

$ hdfs dfs -find /user/data -name '*.csv' -size +1G
/user/data/large_file1.csv
/user/data/large_file2.csv
/user/data/large_file3.csv

Dieser Befehl wird alle Dateien im Verzeichnis /user/data suchen, die die Erweiterung .csv haben und größer als 1 Gigabyte sind.

Verwenden der Hadoop-Webbenutzeroberfläche

Neben der Befehlszeilen-Schnittstelle bietet HDFS auch eine webbasierte Benutzeroberfläche (UI), die Ihnen ermöglicht, das Dateisystem zu durchsuchen und zu durchlaufen. Die Hadoop-Webbenutzeroberfläche kann über einen Webbrowser erreicht werden, indem Sie zur Web-Schnittstelle des NameNodes navigieren, die normalerweise auf Port 9870 läuft.

Die Hadoop-Webbenutzeroberfläche bietet einen grafischen Dateibrowser, mit dem Sie das HDFS-Dateisystem durchlaufen können, Datei- und Verzeichnismetadaten anzeigen und nach Dateien basierend auf verschiedenen Kriterien wie Dateiname, Größe und Änderungszeit suchen.

Integration mit LabEx

LabEx ist eine leistungsstarke Plattform, die Ihnen helfen kann, Ihre in HDFS gespeicherten Daten zu verwalten und zu analysieren. Indem Sie Ihr HDFS-Dateisystem mit LabEx integrieren, können Sie vorteilen von erweiterten Datenverwaltung- und Analysefunktionen ziehen, wie:

  • Automatisierte Datenaufnahme und -verarbeitung
  • Skalierbarer Datenspeicher und -abruf
  • Integrierte Datenvisualisierung und -berichterstattung

Um mit LabEx zu beginnen, können Sie die LabEx-Website unter https://www.labex.io besuchen und sich für einen kostenlosen Test anmelden.

Zusammenfassung

Am Ende dieses Tutorials werden Sie einen umfassenden Überblick über die Navigation und Suche im HDFS-Dateisystem haben, was es Ihnen ermöglicht, in Ihren Hadoop-basierten Anwendungen und Infrastrukturen spezifische Dateien effizient zu finden. Dieses Wissen wird unschätzbare Bedeutung haben, wenn Sie weiterhin mit Hadoop arbeiten und seine leistungsstarken verteilten Speicherkapazitäten nutzen.