HDFS Shell命令有哪些?

HDFS(Hadoop Distributed File System)作为Hadoop生态系统的核心组件,提供了分布式文件存储能力,其Shell命令是与HDFS交互的主要方式,通过HDFS Shell命令,用户可以完成文件的上传、下载、删除、查看、目录管理、权限设置等操作,这些命令大多基于Linux Shell命令设计,语法相似但针对分布式环境进行了优化,以下将详细介绍HDFS Shell的常用命令及其使用场景。

hdfs shell各种命令
(图片来源网络,侵删)

基础文件与目录操作

创建目录

hdfs dfs -mkdir <目录路径>:用于在HDFS上创建目录,创建/input目录:

hdfs dfs -mkdir /input

若需创建多级目录(类似mkdir -p),使用-p参数:

hdfs dfs -mkdir -p /data/2023/10

上传文件/目录

hdfs dfs -put <本地路径> <HDFS路径>:将本地文件或目录上传到HDFS,上传本地file.txt到HDFS的/input目录:

hdfs dfs -put file.txt /input/

上传本地目录local_data到HDFS的/data

hdfs shell各种命令
(图片来源网络,侵删)
hdfs dfs -put local_data /data/

下载文件/目录

hdfs dfs -get <HDFS路径> <本地路径>:将HDFS文件或目录下载到本地,下载HDFS的/output/result.txt到本地当前目录:

hdfs dfs -get /output/result.txt ./

下载HDFS目录/data到本地local_backup

hdfs dfs -get /data local_backup

删除文件/目录

hdfs dfs -rm [-r] <路径>:删除文件或目录。-r用于递归删除目录及其内容。

  • 删除文件:hdfs dfs -rm /input/file.txt
  • 删除目录:hdfs dfs -rm -r /data

查看目录内容

hdfs dfs -ls [-R] <路径>:列出目录下的文件和子目录。-R表示递归查看(类似ls -R)。

hdfs shell各种命令
(图片来源网络,侵删)
hdfs dfs -ls /input  # 查看/input目录内容
hdfs dfs -ls -R /data # 递归查看/data目录及子目录

文件查看与内容操作

查看文件内容

hdfs dfs -cat <文件路径>:在终端显示文件内容,适合查看小文件。

hdfs dfs -cat /input/file.txt

hdfs dfs -head [-n] <文件路径>:查看文件前n行内容,默认前1000行,查看文件前5行:

hdfs dfs -head -n 5 /input/file.txt

hdfs dfs -tail [-f] <文件路径>:查看文件末尾内容,-f可实时跟踪文件变化(类似Linux tail -f)。

hdfs dfs -tail -f /output/log.txt

合并文件

hdfs dfs -getmerge <源目录> <本地文件>:将HDFS目录下的多个文件合并为一个本地文件,将/output目录下的所有文件合并为merged_result.txt

hdfs dfs -getmerge /output ./merged_result.txt

权限与所有权管理

修改权限

hdfs dfs -chmod [-R] <权限模式> <路径>:修改文件或目录权限,-R递归修改,将/input目录及其内容权限设为755:

hdfs dfs -chmod -R 755 /input

修改所有者

hdfs dfs -chown [-R] <所有者>:<所属组> <路径>:修改文件或目录的所有者和所属组,将/data目录所有者改为hadoop,所属组改为hadoop

hdfs dfs -chown -R hadoop:hadoop /data

查看权限信息

hdfs dfs -ls <路径>:输出的权限信息格式为权限 所有者 所属组 文件大小 修改时间 文件名

-rw-r--r--   3 hadoop supergroup      134217728 2023-10-01 10:00 /input/file.txt

磁盘空间与使用情况

查看目录/文件大小

hdfs dfs -du [-s] [-h] <路径>:显示目录或文件占用的空间大小。-s汇总显示(不显示子目录详情),-h以人类可读格式(如KB、MB、GB)显示。

hdfs dfs -du -h /data  # 查看/data目录总大小
hdfs dfs -du -sh /input/* # 查看/input下各文件大小并汇总

查看磁盘剩余空间

hdfs dfs -df [-h] <路径>:显示HDFS文件系统的剩余空间。-h以人类可读格式显示。

hdfs dfs -df -h /  # 查看根目录剩余空间

高级操作

移动/重命名文件

hdfs dfs -mv <源路径> <目标路径>:移动文件或目录,也可用于重命名。

  • /input/file.txt移动到/backup/
    hdfs dfs -mv /input/file.txt /backup/
  • 重命名/old.txt/new.txt
    hdfs dfs -mv /old.txt /new.txt

复制文件

hdfs dfs -cp <源路径> <目标路径>:复制文件或目录,将/input/file.txt复制到/output/

hdfs dfs -cp /input/file.txt /output/

计数文件信息

hdfs dfs -count [-h] [-q] <路径>:统计目录下的文件数量、目录数量和总空间。-h人类可读,-q显示配额信息。

hdfs dfs -count -h /data
# 输出:目录数 文件数 总大小 HDFS路径

设置文件副本数

hdfs dfs -setrep [-R] <副本数> <路径>:修改文件副本数。-R递归修改目录下所有文件,将/input/file.txt副本数设为3:

hdfs dfs -setrep 3 /input/file.txt

常用命令速查表

命令功能描述示例
hdfs dfs -mkdir创建目录hdfs dfs -mkdir /data
hdfs dfs -put上传本地文件/目录到HDFShdfs dfs -put local.txt /data/
hdfs dfs -get下载HDFS文件/目录到本地hdfs dfs -get /data/file.txt ./
hdfs dfs -ls列出目录内容hdfs dfs -ls /data
hdfs dfs -cat查看文件内容hdfs dfs -cat /data/file.txt
hdfs dfs -rm删除文件/目录hdfs dfs -rm -r /data
hdfs dfs -chmod修改权限hdfs dfs -chmod 644 /data/file.txt
hdfs dfs -du查看文件/目录大小hdfs dfs -du -h /data
hdfs dfs -df查看磁盘剩余空间hdfs dfs -df -h /
hdfs dfs -mv移动/重命名文件hdfs dfs -mv /old.txt /new.txt
hdfs dfs -count统计目录文件数、大小hdfs dfs -count -h /data

相关问答FAQs

Q1: HDFS中如何查看某个目录下所有文件的总大小?
A: 使用hdfs dfs -du -sh <目录路径>命令,查看/input目录总大小:

hdfs dfs -du -sh /input

-s表示汇总显示(不显示子目录详情),-h以人类可读格式(如MB、GB)输出结果。

Q2: 如果HDFS文件删除后,如何从回收站恢复?
A: HDFS默认会将被删除的文件移动到回收站(路径为/user/<当前用户>/.Trash),可通过以下步骤恢复:

  1. 查看回收站文件:hdfs dfs -ls /user/$USER/.Trash
  2. 将文件从回收站移回原目录:hdfs dfs -mv /user/$USER/.Trash/文件路径 /目标目录
    恢复/input/file.txt

    hdfs dfs -mv /user/$USER/.Trash/input/file.txt /input/

    注意:回收站的保留时间由fs.trash.interval参数配置(默认为0,即禁用回收站),需在hdfs-site.xml中调整该值才能启用回收站功能。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/374285.html<

(0)
运维的头像运维
上一篇2025-09-30 14:03
下一篇 2025-09-30 14:09

相关推荐

  • 如何重启IIS?步骤有哪些?

    重新启动IIS(Internet Information Services)是解决网站服务异常、应用程序池崩溃或配置更新后生效的常用方法,以下是详细的操作步骤、注意事项及不同场景下的解决方案,帮助用户高效完成IIS重启操作,通过IIS管理器重启打开IIS管理器在服务器上按Win+R,输入inetmgr并回车,或……

    2025-11-20
    0
  • 纯DOS模式命令有哪些基础操作?

    纯DOS模式命令是早期计算机操作系统中常用的指令集,主要通过命令行界面与系统交互,DOS(Disk Operating System)是磁盘操作系统的缩写,其核心特点是单任务、字符界面,用户需输入特定命令完成操作,以下将详细介绍常用DOS命令的功能、语法及示例,帮助理解其基础应用,文件和目录管理是DOS操作的基……

    2025-11-20
    0
  • 如何打开活动目录?

    在Windows服务器管理中,命令行操作因其高效性和灵活性被广泛使用,尤其是在需要批量管理或远程操作时,通过命令打开并管理活动目录(Active Directory,简称AD)是系统管理员的核心技能之一,活动目录是Windows域环境的中央存储库,它包含用户、计算机、打印机、安全策略等对象的信息,并通过分层结构……

    2025-11-19
    0
  • list命令是什么?

    在Linux和Unix-like操作系统中,list本身并不是一个独立的内置命令,但用户通常会将ls命令视为“列出文件”的命令,因为ls的功能与“list”(列表)的含义高度契合,ls是list segments的缩写,用于显示指定目录下的文件和子列表信息,是Linux系统中最基础、最常用的命令之一,通过ls……

    2025-11-17
    0
  • Debian常用命令有哪些?

    Debian作为一款稳定、开源的Linux发行版,广泛应用于服务器和个人桌面环境,掌握其常用命令是高效管理系统的关键,以下从系统管理、文件操作、软件管理、网络配置、进程管理及用户权限六个方面详细介绍Debian常用命令,并辅以表格总结核心命令,最后附相关FAQs,系统管理命令系统管理是日常运维的基础,主要包括系……

    2025-11-15
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注