【HDFS】HDFS 的常用命令

本文深入解析了HDFS中的关键操作命令,涵盖文件创建、浏览、上传下载、文件管理、空间监控以及系统管理功能,适合Hadoop开发者和运维人员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.操作命令

操作命令是以 hdfs dfs 开头的命令。通过这些命令,用户可以完成 HDFS 文件的 复制删除查找 等操作,Shell 命令的一般格式如下。

hdfs dfs [通用选项]

其中,hdfs 是 Hadoop 系统在 Linux 系统中的主命令;dfs 是子命令,表示执行文件系统操作;通用选项由 HDFS 文件操作命令和操作参数组成。

1.1 创建文件夹

hdfs dfs -mkdir [-p] <文件路径>
  • [-p]:表示如果父目录不存在,先创建父目录。

例如,新建文件夹 /202012721/202012721/dir1。命令如下:

hdfs dfs -mkdir /202012721
hdfs dfs -mkdir -p /202012721/dir1

结果如下:

在这里插入图片描述

1.2 列出指定的文件和目录

hdfs dfs -ls [-d][-h][-R] <文件路径>
  • [-d]:返回 path
  • [-h]hhuman-readble,表示按照人性化的单位显示文件大小,比如文件显示为 10 MB,而不会显示 10240 KB。
  • [-R]:级联显示 paths 下的文件。

例如,列出根目录下的文件或目录。命令如下:

hdfs dfs -ls /

结果如下:

在这里插入图片描述

1.3 新建文件

hdfs dfs -touchz <存放路径>

例如,在主目录 /202012721/input 下创建大小为 0 0 0 的空文件 file。命令如下:

hdfs dfs -touchz /202012721/input.txt
hdfs dfs -ls /202012721

结果如下:

在这里插入图片描述

1.4 上传文件

hdfs dfs -put [-f] [-p] <本地路径> <HDFS上的路径>

或者

hdfs dfs -copyFromLocal [-f] [-p] [-l] <本地路径> <HDFS上的路径>

在这里我们只演示第一个命令。例如,在本地创建一个文件 data.txt 并传到 HDFS 的 /202012721 目录下命令如下:

hdfs dfs -put data.txt /202012721/data.txt

结果如下:

在这里插入图片描述

1.5 将本地文件移动到 HDFS

hdfs dfs -moveFromLocal <本地文件路径> <HDFS路径> 

hdfs dfs -copyFromLocal 命令不同的是,此命令将文件复制到 HDFS 后,本地的文件会被删除。

例如,我们把本地文件 data2.txt 移动到 HDFS 的 /202012721 命令如下:

hdfs dfs -moveFromLocal data2.txt /202012721 

结果如下:

在这里插入图片描述

1.6 下载文件

hdfs dfs -get [-p] <HDFS路径> <本地文件路径>

或者

hdfs dfs -copyToLocal [-p] [-ignoreCrc] [-crc] <HDFS路径> <本地文件路径>

例如,将 HDFS 中的 /202012721/data.txt 文件下载并保存为本地的 ~/local_data.txt

hdfs dfs -get /202012721/data.txt ~/local_data.txt

/202012721/data2.txt 文件下载到本地目录:

hdfs dfs -copyToLocal /202012721/data2.txt ~

1.7 查看文件

hdfs dfs -cat [-ignoreCrc] <文件路径>
  • [-ignoreCrc]:忽略循环检验失败的文件。
hdfs dfs -text [-ignoreCrc] <文件路径>
  • text 不仅可以查看文本文件,还可以查看压缩文件和 Avro 序列化的文件。
hdfs dfs -tail [-f] <文件路径>
  • [-f]:动态更新显示数据。
  • tail 查看的是最后 1 KB 的文件(Linux 上的 tail 默认查看最后 10 10 10 行记录)。

例如,查看 /202012721/data.txt。命令如下:

hdfs dfs -cat /202012721/data.txt

结果如下:

在这里插入图片描述

1.8 追写文件

hdfs dfs -appendToFile <本地路径> <目标路径>

该命令将 localsrc 指向的本地文件内容写入目标文件 dst。例如,在本地根目录下新建 data3.txt 文件,内容为 hadoop,追加到文件 /202012721/data.txt 中。命令如下:

hdfs dfs -appendToFile data3.txt /202012721/data.txt
hdfs dfs -cat /202012721/data.txt

结果如下:

在这里插入图片描述

1.9 删除目录或者文件

hdfs dfs -rm [-f] [-r] <文件路径>
  • [-f]:如果要删除的文件不存在,不显示错误信息。
  • [-r/R]:级联删除目录下所有的文件和子目录文件。

例如,删除 HDFS 中的 /202012721/data2.txt 文件。命令如下:

hdfs dfs -rm /202012721/data2.txt

结果如下:

在这里插入图片描述

1.10 显示占用的磁盘空间大小

按字节显示指定目录所占空间大小。

hdfs dfs -du [-s] [-h] <文件路径>
  • [-s]:显示指定目录下文件总的大小。
  • [-h]hhuman-readble,表示按照人性化的单位显示文件大小,比如文件显示为 10 MB,而不会显示 10240 KB。

例如,显示 HDFS 根目录中 202012721 文件夹下所有文件的大小。命令如下:

hdfs dfs -du /202012721

结果如下:

在这里插入图片描述

1.11 HDFS 中的文件复制

hdfs dfs -cp [-f] [-p | -p[topax]] <原路径> <目标路径>
  • [-f]:如果目标文件存在,将强行覆盖。
  • [-p]:将保存文件的属性。

例如,将 HDFS 中的 /202012721/data.txt 复制为 /202012721/data_copy.txt。命令如下:

hdfs dfs -cp /202012721/data.txt /202012721/data_copy.txt

结果如下:

在这里插入图片描述

1.12 HDFS 中的文件移动

hdfs dfs -mv <原路径> <目标路径>

例如,将 HDFS 中的 /202012721/data_copy.txt 移动(也可理解为改名)为 /202012721/data2.txt。命令如下:

hdfs dfs -mv /202012721/data_copy.txt /202012721/data2.txt

结果如下:

在这里插入图片描述

2.管理命令

管理命令是以 hdfs dfsadmin 开头的命令。通过这些命令,用户可以管理 HDFS。管理命令的一般格式如下:

hdfs dfsadmin [通用选项]

其中,hdfs 是 Hadoop 系统在 Linux 系统中的主命令;dfsadmin 是子命令,表示执行文件系统管理的操作;通用选项由 HDFS 管理命令和参数组成。

2.1 报告文件系统的基本信息和统计信息

hdfs dfsadmin -report

结果如下:

在这里插入图片描述

2.2 查看拓扑

hdfs dfsadmin -printTopology

结果如下:

在这里插入图片描述

3.其他命令

我们把操作命令 hdfs dfs、管理命令 hdfs dfsadmin 之外的命令称为其他命令。输入 hdfs 查看。

<think>好的,我现在需要帮助用户查找HDFS常用命令及其用法。首先,我要回忆一下之前提供的引用内容,确保信息准确。根据引用[2]、[3]、[4],用户可能需要了解基本的文件管理、权限设置以及系统信息查询相关的命令。 用户提到的引用中,有关于ls命令、权限管理命令(chmod、chown、chgrp),以及获取配置信息的getconf命令。此外,引用[3]还提到了HDFS的架构,但用户更关注的是命令列表和示例,所以需要集中在命令部分。 接下来,我需要将这些命令分门别类,比如文件操作、权限管理、集群管理等,这样用户更容易查找。同时,每个命令需要给出基本格式和示例,比如ls、put、get、mkdir这些基本操作。还要注意格式是否正确,比如使用$...$包裹行内代码,独立代码块用```包裹。 需要注意权限管理命令的格式,比如chown和chgrp的使用方法,用户可能需要知道如何更改所有者和组。另外,引用[4]中提到getconf用于获取配置信息,比如fs.defaultFS,这也是需要包含的。 还要检查是否有其他常用命令被遗漏,比如复制文件、查看文件内容、删除文件等。比如cp、cat、rm这些命令。同时,用户可能需要知道如何查看空间使用情况,所以df和du命令也要包括进去。 最后,生成相关问题的时候,要围绕HDFS命令的更多细节、权限管理、API使用以及与其他系统的比较来提问,这样可以帮助用户进一步学习。需要确保问题有针对性,并且基于已有的引用内容,避免超出范围。 总结步骤: 1. 整理引用中的HDFS命令。 2. 分类列出命令,给出格式和示例。 3. 确保LaTeX格式正确,比如变量用$...$。 4. 生成相关问题,涵盖命令使用、优化、API等。</think>以下是HDFS常用命令列表及使用示例,基于HDFS分布式文件系统的特性设计: ### 一、文件操作命令 1. **查看目录内容** ```bash hdfs dfs -ls <路径> ``` 示例:`hdfs dfs -ls /user/hadoop` 显示该目录下所有文件[^1] 2. **上传文件** ```bash hdfs dfs -put <本地路径> <HDFS目标路径> ``` 示例:`hdfs dfs -put data.txt /user/input/` 将本地文件上传至HDFS 3. **下载文件** ```bash hdfs dfs -get <HDFS路径> <本地路径> ``` 示例:`hdfs dfs -get /output/result.csv ./downloads/` 4. **创建目录** ```bash hdfs dfs -mkdir -p <路径> ``` 示例:`hdfs dfs -mkdir -p /user/hadoop/newdir` 递归创建多级目录 ### 二、权限管理命令 1. **修改文件所有者** ```bash hdfs dfs -chown <新所有者>:<新所属组> <路径> ``` 示例:`hdfs dfs -chown hadoop:devgroup /user/data` [^2] 2. **修改文件权限** ```bash hdfs dfs -chmod <权限模式> <路径> ``` 示例:`hdfs dfs -chmod 755 /user/scripts` 设置rwxr-xr-x权限[^4] ### 三、集群管理命令 1. **查看空间使用** ```bash hdfs dfs -df -h / # 显示根目录磁盘使用情况 hdfs dfs -du -s -h /data # 统计目录大小 ``` 2. **获取配置信息** ```bash hdfs getconf -confkey <配置项> ``` 示例:`hdfs getconf -confkey fs.defaultFS` 显示默认文件系统地址 ### 四、高级操作命令 1. **跨集群复制** ```bash hdfs distcp hdfs://cluster1/src hdfs://cluster2/dest ``` 2. **查看文件内容** ```bash hdfs dfs -cat /path/file | head -n 20 # 查看前20行 ``` $$ \text{注意:HDFS采用Master/Slave架构,执行命令时实际是与NameNode交互} \cite{3} $$
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据与AI实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值