Comment trouver un fichier spécifique dans le système de fichiers HDFS

HadoopBeginner
Pratiquer maintenant

Introduction

Ce tutoriel vous guidera tout au long du processus de recherche de fichiers spécifiques dans le Hadoop Distributed File System (HDFS), un composant fondamental de l'écosystème Hadoop. Que vous soyez un développeur ou un administrateur Hadoop, comprendre comment rechercher et localiser efficacement des fichiers dans HDFS est une compétence cruciale.

Introduction au Hadoop Distributed File System (HDFS)

Le Hadoop Distributed File System (HDFS) est le principal système de stockage de données utilisé par les applications Apache Hadoop. HDFS est conçu pour fournir un stockage fiable, scalable et tolérant aux pannes pour de grands ensembles de données. C'est un système de fichiers distribué qui s'exécute sur des matériels standard et est optimisé pour le traitement par lots de données.

Architecture d'HDFS

HDFS suit une architecture maître-esclave, où le nœud maître est appelé NameNode et les nœuds esclaves sont appelés DataNodes. Le NameNode est responsable de la gestion de l'espace de noms du système de fichiers, y compris l'arborescence du système de fichiers et les métadonnées de tous les fichiers et répertoires. Les DataNodes sont responsables du stockage et de la récupération des blocs de données sur le système de fichiers local.

graph TD
    NameNode -- Gère l'espace de noms du système de fichiers --> DataNodes
    DataNodes -- Stocke et récupère les blocs de données --> NameNode

Cas d'utilisation d'HDFS

HDFS est largement utilisé dans diverses applications de big data, telles que :

  • Analytique de big data : HDFS est utilisé pour stocker et traiter de grands ensembles de données pour l'analyse de données et l'apprentissage automatique.
  • Ingestion de données : HDFS est utilisé comme zone d'atterrissage pour les données provenant de diverses sources, telles que les journaux web, les données de capteurs et les données des médias sociaux.
  • Archivage de données : HDFS est utilisé pour stocker et archiver de grandes quantités de données pour un stockage et une récupération à long terme.

Interface de ligne de commande d'HDFS

HDFS fournit une interface de ligne de commande (CLI) pour interagir avec le système de fichiers. La commande hdfs est utilisée pour exécuter diverses opérations HDFS, telles que la création de répertoires, le téléchargement et le téléversement de fichiers, et la liste des contenus du système de fichiers.

Voici un exemple de la manière d'obtenir la liste des contenus du répertoire racine HDFS en utilisant la commande hdfs dfs -ls / :

$ hdfs dfs -ls /
Trouvé 3 éléments
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

Cette commande se connecte au NameNode HDFS, récupère la liste des répertoires et affiche les résultats dans le terminal.

Parcourir et chercher dans HDFS

Parcourir le système de fichiers HDFS

Pour parcourir le système de fichiers HDFS, vous pouvez utiliser l'interface de ligne de commande hdfs dfs. Voici quelques commandes courantes pour parcourir HDFS :

  • hdfs dfs -ls [path] : Lister le contenu du répertoire ou du fichier spécifié.
  • hdfs dfs -cd [path] : Changer le répertoire de travail actuel au chemin spécifié.
  • hdfs dfs -mkdir [path] : Créer un nouveau répertoire au chemin spécifié.
  • hdfs dfs -put [local_file] [hdfs_path] : Téléverser un fichier local au chemin HDFS spécifié.
  • hdfs dfs -get [hdfs_file] [local_path] : Télécharger un fichier de HDFS vers le système de fichiers local.

Chercher des fichiers dans HDFS

Pour chercher des fichiers dans HDFS, vous pouvez utiliser la commande hdfs dfs -find. Cette commande vous permet de rechercher des fichiers selon divers critères, tels que le nom du fichier, la taille du fichier et la date de modification.

Voici un exemple de la manière de chercher tous les fichiers dans le répertoire /user/data qui ont une extension .csv :

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

Vous pouvez également utiliser la commande hdfs dfs -du pour obtenir la taille des fichiers et des répertoires dans HDFS. Cela peut être utile lors de la recherche de fichiers en fonction de la taille.

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

En combinant les commandes hdfs dfs -find et hdfs dfs -du, vous pouvez rechercher des fichiers dans HDFS en fonction à la fois du nom et de la taille.

Techniques pratiques pour trouver des fichiers dans HDFS

Utilisation d'expressions régulières pour la recherche de fichiers

La commande hdfs dfs -find prend en charge l'utilisation d'expressions régulières pour rechercher des fichiers dans HDFS. Cela peut être particulièrement utile lorsque vous devez rechercher des fichiers sur la base de motifs complexes, tels que des noms de fichiers qui correspondent à un format spécifique.

Voici un exemple de la manière d'utiliser une expression régulière pour rechercher tous les fichiers dans le répertoire /user/data qui commencent par "file_" et ont un suffixe numérique :

$ 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

Combinaison de critères de recherche

Vous pouvez combiner plusieurs critères de recherche pour resserrer vos résultats de recherche. Par exemple, vous pouvez rechercher des fichiers sur la base à la fois du nom et de la taille :

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

Cette commande recherchera tous les fichiers dans le répertoire /user/data qui ont une extension .csv et sont plus grands que 1 gigaoctet.

Utilisation de l'interface utilisateur web Hadoop

En plus de l'interface de ligne de commande, HDFS fournit également une interface utilisateur web (UI) qui vous permet de naviguer et de rechercher le système de fichiers. L'interface utilisateur web Hadoop peut être accédée en ouvrant un navigateur web et en vous rendant à l'interface web du NameNode, généralement exécutée sur le port 9870.

L'interface utilisateur web Hadoop fournit un explorateur de fichiers graphique qui vous permet de naviguer dans le système de fichiers HDFS, de visualiser les métadonnées des fichiers et des répertoires et de rechercher des fichiers sur la base de divers critères, tels que le nom du fichier, la taille et la date de modification.

Intégration avec LabEx

LabEx est une plateforme puissante qui peut vous aider à gérer et à analyser vos données stockées dans HDFS. En intégrant votre système de fichiers HDFS avec LabEx, vous pouvez profiter de fonctionnalités avancées de gestion et d'analyse de données, telles que :

  • L'ingestion et le traitement automatisés des données
  • Le stockage et la récupération de données évolutives
  • La visualisation et le rapportage de données intégrés

Pour commencer avec LabEx, vous pouvez visiter le site web de LabEx à https://www.labex.io et vous inscrire à un essai gratuit.

Sommaire

À la fin de ce tutoriel, vous aurez une compréhension complète de la manière de naviguer et de chercher dans le système de fichiers HDFS, vous permettant de localiser efficacement des fichiers spécifiques dans vos applications et infrastructures basées sur Hadoop. Cette connaissance sera précieuse lorsque vous continuerez à travailler avec Hadoop et à exploiter ses puissantes capacités de stockage distribué.