菜鸟科技网

HDFS命令大全有哪些核心实用命令?

HDFS(Hadoop Distributed File System)作为Hadoop生态系统的核心组件,提供了高容错、高吞吐量的分布式存储能力,掌握HDFS命令是操作和管理HDFS数据的基础,以下从基本操作、文件管理、目录管理、权限控制、集群维护等维度详细解析常用命令。

HDFS命令大全有哪些核心实用命令?-图1
(图片来源网络,侵删)

基本操作命令

hdfs dfs

所有HDFS操作均通过hdfs dfshdfs dfsadmin执行,需确保Hadoop集群已启动,例如查看HDFS根目录:

hdfs dfs -ls /

-help

查看命令帮助,如:

hdfs dfs -help -ls

文件与目录管理

上传文件

  • 本地到HDFS:-put-copyFromLocal(功能相同,后者支持断点续传)
    hdfs dfs -put /local/path /hdfs/path
  • 本地到HDFS(递归上传目录):-put -r

下载文件

  • HDFS到本地:-get-copyToLocal
    hdfs dfs -get /hdfs/path /local/path

移动/重命名

  • -mv:移动文件或目录,覆盖目标同名文件
    hdfs dfs -mv /hdfs/src /hdfs/dest
  • -rename:仅重命名,不能跨目录

复制文件

  • -cp:复制文件,支持跨目录
    hdfs dfs -cp /hdfs/file1 /hdfs/dir/file2

删除操作

  • -rm:删除文件(非空目录需加-r
    hdfs dfs -rm -r /hdfs/dir
  • -rmf:强制删除(忽略不存在文件)

创建目录

  • -mkdir:创建目录,父目录不存在需加-p
    hdfs dfs -mkdir -p /hdfs/parent/child

查看文件内容

  • -cat:输出文件内容(大文件慎用)
    hdfs dfs -cat /hdfs/file.txt
  • -head:查看文件前N行(默认1KB)
  • -tail:查看文件末尾N行

文件统计

  • -du:显示文件大小及目录占用空间
    hdfs dfs -du -h /hdfs/dir  # -h以人类可读格式显示
  • -count:统计目录下文件数量、大小
    hdfs dfs -count -h /hdfs/dir

高级操作

文件合并

  • -getmerge:将HDFS目录下多个文件合并下载到本地
    hdfs dfs -getmerge /hdfs/src_dir /local/merged.txt

权限控制

  • -chmod:修改权限
    hdfs dfs -chmod 755 /hdfs/file
  • -chown:修改所有者
    hdfs dfs -chown user:group /hdfs/file

设置副本数

  • -setrep:修改文件副本数(默认3)
    hdfs dfs -setrep 2 /hdfs/file

文件校验

  • -checksum:生成文件校验和
    hdfs dfs -checksum /hdfs/file

集群管理命令(hdfs dfsadmin)

集群状态

  • -report:查看集群整体状态
  • -safemode:管理安全模式
    hdfs dfsadmin -safemode enter  # 进入安全模式
    hdfs dfsadmin -safemode leave  # 离开安全模式

平衡数据

  • -balancer:均衡集群数据分布
    hdfs dfsadmin -balancer -threshold 10  # 阈值为10%

查看块信息

  • -report -blocks:显示文件块分布详情

常用命令速查表

命令 功能描述 示例
ls 列出目录内容 hdfs dfs -ls /
put 上传文件到HDFS hdfs dfs -put local.txt /
get 下载HDFS文件到本地 hdfs dfs -get /remote.txt
rm -r 递归删除目录 hdfs dfs -rm -r /dir
mkdir -p 创建多级目录 hdfs dfs -mkdir -p /a/b/c
du -h 查看目录大小(人类可读) hdfs dfs -du -h /dir
setrep 设置文件副本数 hdfs dfs -setrep 2 /file
chmod 修改文件权限 hdfs dfs -chmod 644 /file
dfsadmin -report 查看集群状态 hdfs dfsadmin -report

FAQs

如何解决HDFS上传文件时“Permission denied”错误?
解答:该错误通常是由于权限不足导致,可通过以下方式解决:

  • 使用hdfs dfs -chmod修改目标目录权限(如chmod 777 /hdfs/target_dir);
  • 使用hdfs dfs -chown修改文件所有者为当前用户(如chown $USER:$USER /hdfs/target_dir);
  • 确保HDFS用户对目标目录有rwx权限。

如何查看HDFS中某个文件存储在哪些DataNode上?
解答:通过HDFS Web UI或命令行查看文件块信息:

HDFS命令大全有哪些核心实用命令?-图2
(图片来源网络,侵删)
  • Web UI:浏览器访问http://<NameNode_IP>:9870/dfshealth.html#tab-blocks,输入文件名搜索;
  • 命令行:使用hfsfs fsck命令:
    hdfs fsck /hdfs/path/to/file -files -blocks -locations

    输出结果会显示文件的块ID、大小以及存储该块的DataNode IP列表。

HDFS命令大全有哪些核心实用命令?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇