Wie man eine Datei in HDFS erstellt und hochlädt

HadoopBeginner
Jetzt üben

Einführung

Hadoop Distributed File System (HDFS) ist eine entscheidende Komponente des Hadoop - Ökosystems und bietet eine zuverlässige und skalierbare Speicherlösung für Big - Data - Anwendungen. In diesem Tutorial führen wir Sie durch den Prozess der Erstellung und des Hochladens von Dateien in HDFS, damit Sie Ihre Daten effektiv in der Hadoop - Umgebung verwalten können.

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

Hadoop Distributed File System (HDFS) ist ein verteiltes Dateisystem, das entwickelt wurde, um große Datensätze über einen Cluster aus kostengünstiger Hardware zu speichern und zu verarbeiten. Es ist eine Kernkomponente des Apache Hadoop - Ökosystems und wird häufig in Big - Data - Anwendungen eingesetzt.

Was ist HDFS?

HDFS ist ein hocheffizientes fehlertolerantes und skalierbares Dateisystem, das einen Hochleistungszugriff auf Anwendungsdaten ermöglicht. Es ist so konzipiert, dass es auf kostengünstiger Hardware läuft und die Speicherung und Verarbeitung großer Datensätze bewältigen kann. HDFS folgt einer Master - Slave - Architektur, wobei der Masterknoten NameNode und die Slave - Knoten DataNodes genannt werden.

Wichtige Merkmale von HDFS

  • Skalierbarkeit: HDFS kann Petabytes an Daten und Tausende von Knoten in einem einzigen Cluster verwalten.
  • Fehlertoleranz: HDFS repliziert Daten automatisch über mehrere DataNodes, um die Datenverfügbarkeit auch bei Hardwareausfällen sicherzustellen.
  • Hochleistung: HDFS ist für die Batchverarbeitung optimiert und kann eine hohe Leistung bei großen Datentransfers bieten.
  • Kompatibilität: HDFS ist mit einer Vielzahl von Datenformaten kompatibel und kann mit verschiedenen Big - Data - Tools und Frameworks integriert werden.

HDFS - Architektur

Die HDFS - Architektur besteht aus folgenden wichtigen Komponenten:

graph TD
    NameNode -- Manages file system namespace --> DataNode
    DataNode -- Stores and retrieves data --> Client
    Client -- Interacts with --> NameNode
  1. NameNode: Der NameNode ist der Masterknoten, der den Dateisystem - Namespace verwaltet, einschließlich der Dateimetadaten und der Speicherorte der Datenblöcke im gesamten Cluster.
  2. DataNode: Die DataNodes sind die Slave - Knoten, die die eigentlichen Datenblöcke speichern und Datenoperationen wie das Lesen, Schreiben und Replizieren von Daten ausführen.
  3. Client: Der Client ist die Anwendung oder der Benutzer, der mit dem HDFS - Cluster interagiert, um Dateioperationen wie das Erstellen, Lesen und Schreiben von Dateien durchzuführen.

HDFS - Anwendungsfälle

HDFS wird häufig in verschiedenen Big - Data - Anwendungen eingesetzt, darunter:

  • Batchverarbeitung: HDFS eignet sich gut für die Batchverarbeitung großer Datensätze, wie z. B. die Analyse von Logdateien, das Web - Crawling und die wissenschaftliche Berechnung.
  • Data Warehousing: HDFS wird oft als Speicherschicht für Data - Warehousing - Lösungen verwendet und bietet eine skalierbare und kostengünstige Möglichkeit, große Mengen an strukturierten und unstrukturierten Daten zu speichern und zu verarbeiten.
  • Maschinelles Lernen und Künstliche Intelligenz: HDFS ist eine beliebte Wahl für die Speicherung und Verarbeitung der großen Datensätze, die für das Training von maschinellen Lern - und KI - Modellen erforderlich sind.
  • Streaming - Daten: HDFS kann in Verbindung mit anderen Komponenten des Hadoop - Ökosystems, wie Apache Spark oder Apache Flink, verwendet werden, um Echtzeit - oder nahezu Echtzeit - Streaming - Daten zu verarbeiten.

Erstellen einer Datei in HDFS

Um eine Datei in HDFS zu erstellen, können Sie die Hadoop - Kommandozeilenschnittstelle (CLI) oder die HDFS Java - API verwenden. In diesem Abschnitt zeigen wir Ihnen, wie Sie mit der Hadoop - CLI eine Datei in HDFS erstellen.

Voraussetzungen

Bevor Sie eine Datei in HDFS erstellen können, müssen Sie einen laufenden Hadoop - Cluster haben und die erforderlichen Berechtigungen, um mit dem Dateisystem zu interagieren. Stellen Sie sicher, dass die Hadoop - CLI auf Ihrem System installiert und konfiguriert ist.

Erstellen einer Datei in HDFS mit der Hadoop - CLI

  1. Öffnen Sie ein Terminal auf Ihrem Ubuntu 22.04 - System.
  2. Starten Sie die Hadoop - Dienste, indem Sie die folgenden Befehle ausführen:
sudo service hadoop-namenode start
sudo service hadoop-datanode start
  1. Verwenden Sie den hdfs dfs - Befehl, um eine Datei in HDFS zu erstellen. Die grundlegende Syntax lautet:
hdfs dfs -put <local_file_path> <hdfs_file_path>

Hierbei ist <local_file_path> der Pfad zur Datei auf Ihrem lokalen System und <hdfs_file_path> der Pfad, an dem Sie die Datei in HDFS erstellen möchten.

Um beispielsweise eine Datei mit dem Namen example.txt im HDFS - Verzeichnis /user/username/ zu erstellen, führen Sie den folgenden Befehl aus:

hdfs dfs -put /path/to/local/example.txt /user/username/example.txt
  1. Vergewissern Sie sich, dass die Datei in HDFS erstellt wurde, indem Sie den folgenden Befehl ausführen:
hdfs dfs -ls /user/username/

Dies listet die Dateien und Verzeichnisse im Verzeichnis /user/username/ auf, einschließlich der neu erstellten Datei example.txt.

Erstellen einer Datei in HDFS mit der Java - API

Alternativ können Sie programmgesteuert eine Datei in HDFS mit der HDFS Java - API erstellen. Hier ist ein Beispiel - Java - Codeausschnitt:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;

public class CreateFileInHDFS {
    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create("hdfs://namenode:8020"), conf);

        Path filePath = new Path("/user/username/example.txt");
        fs.create(filePath).close();

        System.out.println("File created in HDFS: " + filePath);
    }
}

In diesem Beispiel erstellen wir eine neue Datei mit dem Namen example.txt im Verzeichnis /user/username/ des HDFS - Clusters.

Hochladen einer Datei in HDFS

Nachdem Sie eine Datei in HDFS erstellt haben, ist der nächste Schritt, die Datei in den HDFS - Cluster hochzuladen. Sie können Dateien in HDFS mit der Hadoop - CLI oder der HDFS Java - API hochladen. In diesem Abschnitt zeigen wir Ihnen beide Methoden.

Hochladen einer Datei in HDFS mit der Hadoop - CLI

  1. Öffnen Sie ein Terminal auf Ihrem Ubuntu 22.04 - System.
  2. Starten Sie die Hadoop - Dienste, indem Sie die folgenden Befehle ausführen:
sudo service hadoop-namenode start
sudo service hadoop-datanode start
  1. Verwenden Sie den hdfs dfs - Befehl, um eine Datei in HDFS hochzuladen. Die grundlegende Syntax lautet:
hdfs dfs -put <local_file_path> <hdfs_file_path>

Hierbei ist <local_file_path> der Pfad zur Datei auf Ihrem lokalen System und <hdfs_file_path> der Pfad, an dem Sie die Datei in HDFS hochladen möchten.

Um beispielsweise eine Datei mit dem Namen example.txt von Ihrem lokalen System in das HDFS - Verzeichnis /user/username/ hochzuladen, führen Sie den folgenden Befehl aus:

hdfs dfs -put /path/to/local/example.txt /user/username/example.txt
  1. Vergewissern Sie sich, dass die Datei in HDFS hochgeladen wurde, indem Sie den folgenden Befehl ausführen:
hdfs dfs -ls /user/username/

Dies listet die Dateien und Verzeichnisse im Verzeichnis /user/username/ auf, einschließlich der hochgeladenen Datei example.txt.

Hochladen einer Datei in HDFS mit der Java - API

Alternativ können Sie programmgesteuert eine Datei in HDFS mit der HDFS Java - API hochladen. Hier ist ein Beispiel - Java - Codeausschnitt:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;

public class UploadFileToHDFS {
    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create("hdfs://namenode:8020"), conf);

        Path localFilePath = new Path("/path/to/local/example.txt");
        Path hdfsFilePath = new Path("/user/username/example.txt");

        fs.copyFromLocalFile(localFilePath, hdfsFilePath);

        System.out.println("File uploaded to HDFS: " + hdfsFilePath);
    }
}

In diesem Beispiel laden wir die Datei example.txt vom lokalen System in das Verzeichnis /user/username/ im HDFS - Cluster hoch.

Zusammenfassung

Indem Sie die in diesem Hadoop - Tutorial beschriebenen Schritte befolgen, lernen Sie, wie Sie Dateien im Hadoop Distributed File System (HDFS) erstellen und hochladen. Mit diesem Wissen können Sie Daten effizient in Ihren Hadoop - basierten Anwendungen speichern und darauf zugreifen und so das volle Potenzial des Hadoop - Ökosystems ausschöpfen.