如何使用 FS Shell 在 HDFS 中列出文件和目录

HadoopHadoopBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Hadoop 是一个被广泛采用的用于存储和处理大型数据集的框架,而 Hadoop 分布式文件系统(HDFS)是数据存储的核心组件。在本教程中,你将学习如何使用 HDFS FS Shell 在你的 Hadoop 环境中列出文件和目录,从而能够有效地管理和浏览你的大数据存储。


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-415780{{"如何使用 FS Shell 在 HDFS 中列出文件和目录"}} hadoop/fs_cat -.-> lab-415780{{"如何使用 FS Shell 在 HDFS 中列出文件和目录"}} hadoop/fs_ls -.-> lab-415780{{"如何使用 FS Shell 在 HDFS 中列出文件和目录"}} hadoop/fs_mkdir -.-> lab-415780{{"如何使用 FS Shell 在 HDFS 中列出文件和目录"}} hadoop/fs_test -.-> lab-415780{{"如何使用 FS Shell 在 HDFS 中列出文件和目录"}} end

HDFS 简介

Hadoop 分布式文件系统(HDFS)是一种分布式文件系统,旨在跨一组商用硬件存储和处理大型数据集。它是 Hadoop 生态系统的核心组件,在大数据应用中被广泛使用。

HDFS 的设计目标是具有高度容错性和可扩展性,使其能够处理 PB 级的数据和数千个节点。它通过在多个节点上复制数据来实现这一点,确保即使一个或多个节点出现故障,数据仍然可用。

HDFS 的一些关键特性包括:

分布式存储

HDFS 将文件划分为多个块,并将它们存储在集群中的多个节点上。这允许对数据进行并行处理,从而提高性能和可扩展性。

容错性

HDFS 会自动在多个节点上复制数据,确保即使一个或多个节点出现故障,数据仍然可用。

可扩展性

HDFS 可以轻松扩展,以处理大量数据和集群中不断增加的节点数量。

高吞吐量

HDFS 针对高吞吐量的数据访问进行了优化,非常适合批处理应用程序。

要与 HDFS 进行交互,用户可以使用 HDFS FS Shell,它提供了一组用于管理 HDFS 文件系统中的文件和目录的命令行工具。

使用 HDFS FS Shell

HDFS FS Shell 是一个命令行界面,允许用户与 Hadoop 分布式文件系统(HDFS)进行交互。它提供了一组用于管理 HDFS 中文件和目录的命令。

要使用 HDFS FS Shell,你需要设置并运行一个 Hadoop 集群。一旦你可以访问该集群,就可以使用 hdfs dfs 命令对 HDFS 执行各种操作。

以下是在 Ubuntu 22.04 系统上使用 HDFS FS Shell 的示例:

## 连接到 Hadoop 集群
$ ssh user@hadoop-cluster

## 导航到 Hadoop 的 bin 目录
$ cd /usr/local/hadoop/bin

## 列出可用的 HDFS FS Shell 命令
$./hdfs dfs
Usage: hdfs dfs [generic options]
...

## 列出 HDFS 根目录的内容
$./hdfs dfs -ls /
Found 2 items
drwxr-xr-x - user supergroup 0 2023-04-12 12:34 /user
drwxr-xr-x - user supergroup 0 2023-04-12 12:34 /tmp

## 在 HDFS 中创建一个新目录
$./hdfs dfs -mkdir /user/example

## 将本地文件上传到 HDFS
$./hdfs dfs -put local_file.txt /user/example/

## 从 HDFS 下载文件到本地文件系统
$./hdfs dfs -get /user/example/local_file.txt.

HDFS FS Shell 提供了广泛的命令来管理 HDFS 中的文件和目录,包括 lsmkdirputgetrm 等等。你可以通过不带任何参数运行 hdfs dfs 来找到可用命令的完整列表。

在 HDFS 中列出文件和目录

在 HDFS 中,最常见的操作之一就是列出文件系统中的文件和目录。HDFS FS Shell 为此提供了多个命令,使你能够查看 HDFS 目录的内容并获取有关文件和目录的信息。

列出根目录

要列出 HDFS 根目录的内容,可以使用以下命令:

$ hdfs dfs -ls /

这将显示根目录中所有文件和目录的列表,包括它们的权限、所有者、组、大小和修改时间。

列出特定目录

要列出 HDFS 中特定目录的内容,可以使用以下命令:

$ hdfs dfs -ls /user/example

这将显示 /user/example 目录的内容。

递归列出

如果你想递归列出一个目录及其子目录的内容,可以使用 -R 选项:

$ hdfs dfs -ls -R /user/example

这将显示 /user/example 目录及其所有子目录的内容。

显示文件和目录详细信息

要显示 HDFS 中文件和目录的更详细信息,可以使用 -stat 选项。这将显示文件或目录的大小、复制因子、块大小和其他元数据:

$ hdfs dfs -stat /user/example/file.txt

这将显示 /user/example 目录中 file.txt 文件的详细信息。

通过使用这些 HDFS FS Shell 命令,你可以有效地列出并探索 HDFS 文件系统的内容,这是使用 Hadoop 和大数据应用程序的一项基本技能。

总结

本教程提供了一份关于如何使用 HDFS FS Shell 在你的 Hadoop 环境中列出文件和目录的全面指南。通过了解基本的 HDFS 命令,你现在可以有效地浏览和管理你的大数据存储,这对于任何 Hadoop 开发者或管理员来说都是一项至关重要的技能。