Comment lister le contenu d'un répertoire HDFS

HadoopHadoopBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel vous guidera tout au long du processus de liste du contenu d'un répertoire HDFS (Hadoop Distributed File System), une compétence fondamentale pour travailler avec le Système de fichiers distribué Hadoop (Hadoop Distributed File System - HDFS). En comprenant les bases de HDFS et en explorant des scénarios pratiques, vous apprendrez à gérer efficacement vos données Hadoop et à naviguer dans le système de fichiers.


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_mkdir("FS Shell mkdir") hadoop/HadoopHDFSGroup -.-> hadoop/fs_test("FS Shell test") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-417681{{"Comment lister le contenu d'un répertoire HDFS"}} hadoop/fs_cat -.-> lab-417681{{"Comment lister le contenu d'un répertoire HDFS"}} hadoop/fs_ls -.-> lab-417681{{"Comment lister le contenu d'un répertoire HDFS"}} hadoop/fs_mkdir -.-> lab-417681{{"Comment lister le contenu d'un répertoire HDFS"}} hadoop/fs_test -.-> lab-417681{{"Comment lister le contenu d'un répertoire HDFS"}} end

Comprendre HDFS

Le Système de fichiers distribué Hadoop (Hadoop Distributed File System - HDFS) est le principal système de stockage utilisé par les applications Hadoop. Il est conçu pour stocker et gérer de grands ensembles de données de manière distribuée et tolérante aux pannes. HDFS est construit sur le concept d'une architecture maître-esclave, où le nœud maître, appelé NameNode, gère les métadonnées du système de fichiers, et les nœuds esclaves, appelés DataNodes, stockent les données réelles.

HDFS est conçu pour fournir un accès à haut débit aux données, ce qui le rend bien adapté aux applications qui nécessitent le traitement de grandes quantités de données, telles que le traitement par lots, l'apprentissage automatique et l'analyse de données. Il parvient à cela en divisant les fichiers en blocs plus petits et en les répartissant sur plusieurs DataNodes, permettant un traitement parallèle des données.

L'une des principales caractéristiques de HDFS est sa capacité à gérer gracieusement les défaillances matérielles. HDFS réplique automatiquement les blocs de données sur plusieurs DataNodes, garantissant que les données sont disponibles même si un ou plusieurs DataNodes échouent. Cette redondance permet également à HDFS de fournir une haute disponibilité et une tolérance aux pannes, ce qui en fait un choix fiable pour le stockage et le traitement de grands ensembles de données.

Pour interagir avec HDFS, les utilisateurs peuvent utiliser l'interface en ligne de commande (CLI) Hadoop ou diverses bibliothèques clientes, telles que l'API Java, l'API Python ou l'outil en ligne de commande hdfs. Ces outils fournissent un ensemble de commandes et de fonctions pour effectuer diverses opérations sur le système de fichiers, notamment la création, la suppression et la liste des fichiers et des répertoires.

graph TD NameNode -- Manages Metadata --> DataNode1 NameNode -- Manages Metadata --> DataNode2 DataNode1 -- Stores Data Blocks --> Client DataNode2 -- Stores Data Blocks --> Client

Lister les fichiers et les répertoires dans HDFS

Lister les fichiers dans HDFS

Pour lister les fichiers et les répertoires dans un répertoire HDFS, vous pouvez utiliser la commande hdfs dfs -ls. Cette commande affichera le contenu du répertoire spécifié, y compris les noms de fichiers, les tailles de fichiers et les dates de modification.

Exemple :

$ hdfs dfs -ls /user/labex/data
Found 3 items
-rw-r--r--   3 labex supergroup     12345 2023-04-01 12:34 /user/labex/data/file1.txt
-rw-r--r--   3 labex supergroup     67890 2023-04-02 15:27 /user/labex/data/file2.txt
drwxr-xr-x   - labex supergroup        0 2023-04-03 09:15 /user/labex/data/subdirectory

Dans cet exemple, la commande liste le contenu du répertoire /user/labex/data, qui comprend deux fichiers (file1.txt et file2.txt) et un sous-répertoire (subdirectory).

Lister les répertoires dans HDFS

Pour lister les répertoires dans un répertoire HDFS, vous pouvez utiliser l'option -d avec la commande hdfs dfs -ls. Cela affichera uniquement les répertoires, en excluant les fichiers.

Exemple :

$ hdfs dfs -ls -d /user/labex/data/*
drwxr-xr-x   - labex supergroup        0 2023-04-03 09:15 /user/labex/data/subdirectory

Dans cet exemple, la commande liste uniquement les répertoires situés dans le répertoire /user/labex/data.

Liste récursive

Pour lister le contenu d'un répertoire HDFS et de ses sous-répertoires de manière récursive, vous pouvez utiliser l'option -R avec la commande hdfs dfs -ls.

Exemple :

$ hdfs dfs -ls -R /user/labex/data
-rw-r--r--   3 labex supergroup     12345 2023-04-01 12:34 /user/labex/data/file1.txt
-rw-r--r--   3 labex supergroup     67890 2023-04-02 15:27 /user/labex/data/file2.txt
drwxr-xr-x   - labex supergroup        0 2023-04-03 09:15 /user/labex/data/subdirectory
-rw-r--r--   3 labex supergroup     54321 2023-04-04 17:22 /user/labex/data/subdirectory/file3.txt

Dans cet exemple, la commande liste le contenu du répertoire /user/labex/data et de ses sous-répertoires de manière récursive.

Scénarios pratiques et cas d'utilisation

Exploration et analyse de données

Un cas d'utilisation courant pour lister les fichiers et les répertoires dans HDFS est l'exploration et l'analyse de données. Lorsque vous travaillez avec de grands ensembles de données stockés dans HDFS, vous pouvez utiliser la commande hdfs dfs -ls pour rapidement comprendre la structure et le contenu des données. Cela peut être utile lors de la préparation des données pour un traitement ou une analyse ultérieure.

Exemple :

$ hdfs dfs -ls /user/labex/sales_data
-rw-r--r--   3 labex supergroup  1234567 2023-04-01 10:23 /user/labex/sales_data/sales_2022.csv
-rw-r--r--   3 labex supergroup  7654321 2023-04-02 14:56 /user/labex/sales_data/sales_2023.csv
drwxr-xr-x   - labex supergroup        0 2023-04-03 08:12 /user/labex/sales_data/regional_data

Dans cet exemple, la commande hdfs dfs -ls est utilisée pour lister le contenu du répertoire /user/labex/sales_data, qui contient deux fichiers CSV et un sous-répertoire pour les données régionales.

Sauvegarde et récupération d'urgence

Un autre cas d'utilisation courant pour lister les fichiers et les répertoires dans HDFS est à des fins de sauvegarde et de récupération d'urgence. En listant régulièrement le contenu des répertoires HDFS critiques, vous pouvez vous assurer que vos données sont correctement stockées et répliquées, et identifier tout problème potentiel ou fichier manquant.

Exemple :

$ hdfs dfs -ls -R /user/labex/important_data
-rw-r--r--   3 labex supergroup  12345678 2023-04-01 09:00 /user/labex/important_data/file1.txt
-rw-r--r--   3 labex supergroup  87654321 2023-04-02 15:30 /user/labex/important_data/file2.txt
drwxr-xr-x   - labex supergroup         0 2023-04-03 11:45 /user/labex/important_data/backups
-rw-r--r--   3 labex supergroup  98765432 2023-04-04 08:20 /user/labex/important_data/backups/backup_2023-04-03.tar.gz

Dans cet exemple, la commande hdfs dfs -ls -R est utilisée pour lister de manière récursive le contenu du répertoire /user/labex/important_data, qui comprend deux fichiers et un sous-répertoire pour les sauvegardes. Cette information peut être utilisée pour vous assurer que les données sont correctement sauvegardées et répliquées.

Surveillance et résolution de problèmes

Lister les fichiers et les répertoires dans HDFS peut également être utile à des fins de surveillance et de résolution de problèmes. En vérifiant régulièrement le contenu des répertoires HDFS, vous pouvez identifier tout changement inattendu ou problème, tels que des fichiers manquants, des tailles de fichiers inattendues ou un accès non autorisé.

Exemple :

$ hdfs dfs -ls /user/labex/logs
-rw-r--r--   3 labex supergroup  12345 2023-04-01 12:34 /user/labex/logs/app_log_2023-04-01.txt
-rw-r--r--   3 labex supergroup  67890 2023-04-02 15:27 /user/labex/logs/app_log_2023-04-02.txt
-rw-r--r--   3 labex supergroup 123456 2023-04-03 09:15 /user/labex/logs/app_log_2023-04-03.txt

Dans cet exemple, la commande hdfs dfs -ls est utilisée pour lister le contenu du répertoire /user/labex/logs, qui contient des fichiers journaux quotidiens. En vérifiant régulièrement le contenu de ce répertoire, vous pouvez vous assurer que les journaux sont correctement générés et stockés, et identifier tout problème potentiel ou anomalie.

Résumé

Dans ce tutoriel sur Hadoop, vous avez appris à lister le contenu d'un répertoire HDFS, une compétence essentielle pour travailler avec l'écosystème Hadoop. En comprenant les bases de HDFS et en explorant des cas d'utilisation réels, vous disposez désormais des connaissances nécessaires pour gérer efficacement vos données Hadoop et naviguer dans le système de fichiers. Grâce à ces compétences, vous pouvez rationaliser vos flux de travail de développement Hadoop et de traitement de données.