Video: Einführung in die Dateien-App auf dem iPad – Apple Support 2024
speichern möchten HDFS ist eine der beiden Hauptkomponenten des Hadoop-Frameworks. das andere ist das als MapReduce bekannte Computational Paradigma. Ein verteiltes Dateisystem ist ein Dateisystem, das den Speicher in einem vernetzten Maschinencluster verwaltet.
HDFS speichert Daten in Blöcken , Einheiten, deren Standardgröße 64 MB beträgt. Dateien, die Sie in HDFS speichern möchten, müssen in Blockgrößen aufgeteilt werden, die dann unabhängig im gesamten Cluster gespeichert werden. Sie können den Befehl fsck line verwenden, um die Blöcke aufzulisten, aus denen jede Datei in HDFS besteht:
% hadoop fsck / -files -blocks
Da Hadoop in Java geschrieben ist, werden alle Interaktionen mit HDFS über die Java-API verwaltet. Bedenken Sie jedoch, dass Sie kein Java-Guru sein müssen, um mit Dateien in HDFS zu arbeiten. Mehrere Hadoop-Schnittstellen, die auf der Java-API basieren, werden nun häufig verwendet (und verbergen Java), aber die einfachste ist die Befehlszeilenschnittstelle. Verwenden Sie die Befehlszeile, um in den bereitgestellten Beispielen mit HDFS zu interagieren.
Sie greifen auf die Hadoop-Dateisystem-Shell zu, indem Sie eine Form des Befehls hadoop ausführen. Alle hadoop-Befehle werden vom bin / hadoop-Skript aufgerufen. (Um eine Beschreibung aller hadoop-Befehle abzurufen, führen Sie das hadoop-Skript aus, ohne Argumente anzugeben.) Der hadoop-Befehl hat die Syntax
hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Die Option config confdir überschreibt das Standardkonfigurationsverzeichnis ($ HADOOP_HOME / conf), sodass Sie Ihre Hadoop-Umgebungskonfiguration einfach anpassen können. Die allgemeinen Optionen und Befehlsoptionen sind eine allgemeine Gruppe von Optionen, die von mehreren Befehlen unterstützt werden.
Hadoop-Dateisystem-Shell-Befehle (für Befehlszeilenschnittstellen) verwenden Uniform Resource Identifiers (URIs) als Argumente. Ein URI ist eine Zeichenkette, die verwendet wird, um einen Namen oder eine Webressource zu identifizieren.
Der String kann einen Schemanamen enthalten - ein Qualifizierer für die Art der Datenquelle. Für HDFS ist der Systemname hdfs, und für das lokale Dateisystem ist der Name des Systems eine Datei. Wenn Sie keinen Schemanamen angeben, ist der Standardwert der Schemaname, der in der Konfigurationsdatei angegeben ist. Eine Datei oder ein Verzeichnis in HDFS kann vollständig qualifiziert angegeben werden, wie in diesem Beispiel:
hdfs: // namenodehost / parent / child
Oder es kann einfach / parent / child sein, wenn die Konfigurationsdatei auf zu hdfs: // namenodehost.
Die Shellbefehle des Hadoop-Dateisystems, die Linux-Dateibefehlen ähneln, haben die folgende allgemeine Syntax:
hadoop hdfs dfs - file_cmd
Leser mit einer früheren Hadoop-Erfahrung könnten fragen: "Aber was über den Befehl hadoop fs?"Der Befehl fs ist in der Release-Reihe Hadoop 0. 2 veraltet, funktioniert aber weiterhin in Hadoop 2. Verwenden Sie stattdessen hdfs dfs.
Wie Sie vielleicht erwarten, verwenden Sie den Befehl mkdir, um ein Verzeichnis in HDFS zu erstellen, wie Sie dies auch auf Linux- oder UNIX-basierten Betriebssystemen tun würden. Obwohl HDFS ein Standard-Arbeitsverzeichnis hat, / user / $ USER, wobei $ USER Ihr Login-Benutzername ist, müssen Sie es selbst erstellen, indem Sie die Syntax
$ hadoop hdfs dfs -mkdir / user / verwenden. login_user_name
Um zum Beispiel ein Verzeichnis mit dem Namen "joanna" zu erstellen, führen Sie diesen Befehl mkdir aus:
$ hadoop hdfs dfs -mkdir / user / joanna
Verwenden Sie den Befehl Hadoop put, um eine Datei zu kopieren. Ihr lokales Dateisystem auf HDFS:
$ hadoop hdfs dfs -put Dateiname / user / login_user_name
Zum Beispiel, um eine Datei namens data zu kopieren. txt zu diesem neuen Verzeichnis, führen Sie den folgenden Befehl put aus:
$ hadoop hdfs dfs -put data. txt / user / joanna
Führen Sie den Befehl ls aus, um eine HDFS-Dateiliste zu erhalten:
$ hadoop hdfs dfs -ls. Gefunden 2 artikel drwxr-xr-x - joanna supergroup 0 2013-06-30 12: 25 / benutzer / joanna -rw-r - r-- 1 joanna supergroup 118 2013-06-30 12: 15 / user / joanna / Daten. txt
Die Dateiliste selbst zerfällt wie in dieser Liste beschrieben:
-
Spalte 1 zeigt den Dateimodus ("d" für Verzeichnis und "-" für normale Datei, gefolgt von den Berechtigungen).. Die drei Berechtigungstypen - read (r), write (w) und execute (x) - sind dieselben wie bei Linux- und Unix-basierten Systemen. Die Ausführungsberechtigung für eine Datei wird ignoriert, da Sie keine Datei auf HDFS ausführen können. Die Berechtigungen sind nach Eigentümer, Gruppe und öffentlich (alle anderen) gruppiert.
-
Spalte 2 zeigt den Replikationsfaktor für Dateien. (Das Replikationskonzept gilt nicht für Verzeichnisse.) Die Blöcke, aus denen eine Datei in HDFS besteht, werden repliziert, um die Fehlertoleranz sicherzustellen. Der Replikationsfaktor oder die Anzahl der Replikate, die für eine bestimmte Datei aufbewahrt werden, ist konfigurierbar. Sie können den Replikationsfaktor beim Erstellen der Datei oder später über Ihre Anwendung angeben.
-
Die Spalten 3 und 4 zeigen die Datei Besitzer und Gruppe . Supergroup ist der Name der Gruppe von Superusers und ein Superuser ist der Benutzer mit der gleichen Identität wie der NameNode-Prozess. Wenn Sie den NameNode starten, sind Sie jetzt der Superuser. Hierbei handelt es sich um eine spezielle Gruppe - reguläre Benutzer haben ihre Benutzer-IDs zu einer Gruppe ohne spezielle Merkmale gehören - eine Gruppe, die einfach von einem Hadoop-Administrator definiert wird.
-
Spalte 5 zeigt die Größe der Datei in Bytes oder 0 an, wenn es sich um ein Verzeichnis handelt.
-
Die Spalten 6 und 7 zeigen das Datum bzw. die Uhrzeit der letzten Änderung an.
-
Spalte 8 zeigt den unqualifizierten Namen (dh der Name des Schemas ist nicht angegeben) der Datei oder des Verzeichnisses an.
Verwenden Sie den Befehl Hadoop get, um eine Datei von HDFS in Ihr lokales Dateisystem zu kopieren:
$ hadoop hdfs dfs -get dateiname / user / login_user_name
Verwenden Sie den Hadoop rm Befehl zum Löschen einer Datei oder eines leeren Verzeichnisses:
$ hadoop hdfs dfs -rm dateiname / user / login_user_name
Verwenden Sie den Befehl hadoop hdfs dfs -help, um detaillierte Hilfe für alle Möglichkeit.