HDFS(Hadoop Distributed File System)是Hadoop生态中的核心组件,专为大规模数据存储设计,具有高容错性、高吞吐量等特点,掌握HDFS命令是操作和管理Hadoop数据的基础,以下从常用命令分类、功能详解及使用场景进行说明,HDFS命令通过hdfs dfs
或hadoop fs
调用,两者功能基本一致,本文以hdfs dfs
为例展开。

文件与目录管理命令
- 创建目录:
-mkdir
命令用于创建目录,支持多级目录创建,如hdfs dfs -mkdir /data/input
会在根目录下创建input
文件夹;若需创建多级目录,需加-p
参数,即hdfs dfs -mkdir -p /data/2023/input
,可一次性创建不存在的父目录。 - 上传文件:
-put
或-copyFromLocal
可将本地文件上传至HDFS,如hdfs dfs -put local.txt /data/input/
,后者支持更复杂的文件过滤(如排除特定文件)。-moveFromLocal
上传后会删除本地文件。 - 下载文件:
-get
或-copyToLocal
将HDFS文件下载至本地,-getmerge
可合并多个文件下载,如hdfs dfs -getmerge /data/output/* local_merged.txt
。 - 删除操作:
-rm
删除文件,-rm -r
递归删除目录(如hdfs dfs -rm -r /data/old
);-rmf
(非安全模式)或-rm -skipTrash
可跳过回收站直接删除。
文件查看与搜索命令
- 查看文件内容:
-cat
输出文件全部内容(hdfs dfs -cat /data/input.txt
);-head
和-tail
分别查看文件开头和末尾(默认10行,可通过-n
指定行数)。 - 文件统计:
-du
查看文件大小及占用空间,如hdfs dfs -du -h /data
(-h
以人类可读格式显示);-count
统计目录下文件数量和总大小(hdfs dfs -count /data
)。 - 搜索文件:
-find
支持按名称、类型等条件搜索,如hdfs dfs -find /data -name "*.log" -type f
查找所有.log
文件。
权限与所有权管理
HDFS采用Linux风格的权限模型,-chmod
修改权限(hdfs dfs -chmod 755 /data
),-chown
修改所有者和组(hdfs dfs -chown user:group /data
),-chgrp
仅修改组。
存储配额与空间管理
-setquota
设置目录配额(如hdfs dfs -setquota -u 10G /data/user1
限制用户1使用10GB空间),-clrquota
清除配额;-df
查看文件系统整体使用情况(hdfs dfs -df -h /
)。
高级命令
-distcp
用于集群间分布式复制(hdfs dfs -distcp hdfs://cluster1/data hdfs://cluster2/data_backup
);-expunge
清空回收站;-setrep
调整副本数(hdfs dfs -setrep 3 /data/input.txt
,将文件副本数设为3)。
命令使用示例表格
命令 | 参数示例 | 功能说明 |
---|---|---|
hdfs dfs -mkdir |
-p /data/2023/q1 |
递归创建多级目录 |
hdfs dfs -put |
local.txt /data/ |
上传本地文件至HDFS |
hdfs dfs -getmerge |
/data/output/* merged.txt |
合并HDFS多个文件并下载 |
hdfs dfs -du |
-h /data |
以易读格式显示目录大小 |
hdfs dfs -setrep |
2 /data/small_file.txt |
修改文件副本数为2 |
相关问答FAQs
Q1: HDFS删除文件后如何从回收站恢复?
A: HDFS删除文件时,默认会将其移动到.Trash/Current
目录(可通过fs.trash.interval
配置回收站保留时间),恢复时,可通过hdfs dfs -mv /user/<username>/.Trash/Current/<file> /target/path
将文件移出回收站,若已执行rm -r
或清空回收站,则无法恢复。

Q2: 如何查看HDFS集群的存储使用情况?
A: 可通过hdfs dfs -df -h /
查看根目录使用量,或访问HDFS Web UI(默认地址http://hdfs dfsadmin -report
命令可输出集群整体存储报告,包括容量、已用空间、数据节点状态等。
