HDFS 基本操作指南

本操作指南介绍如何使用 Hadoop 分布式文件系统(HDFS)进行基本文件和目录的管理操作。这些命令可以在 Hadoop 集群上通过 Hadoop 的命令行工具 `hdfs dfs` 进行操作。

注意使用hdfs dfs同hadoop fs,可依据个人喜好使用

[root@master ~]# hdfs dfs -ls /
Found 2 items
-rw-r--r--   3 root supergroup         51 2024-09-20 10:52 /a.txt
drwxr-xr-x   - root supergroup          0 2024-09-20 11:05 /user
[root@master ~]# hadoop fs -ls /
Found 2 items
-rw-r--r--   3 root supergroup         51 2024-09-20 10:52 /a.txt
drwxr-xr-x   - root supergroup          0 2024-09-20 11:05 /user

1. 创建目录

在 HDFS 中创建一个新的目录,使用 `mkdir` 命令。

# hdfs dfs -mkdir <目录名字>
# 例
hdfs dfs -mkdir /user/dfstest
#该命令只能在已有的目录下创建
hdfs dfs -mkdir -p /user/dfstest/test1
#该命令可以同时创建多级目录

2. 上传文件到 HDFS

使用 `put` 命令将本地文件上传到 HDFS。

#上传
## hdfs dfs -put <本地文件路径> <HDFS目标路径>
hdfs dfs -put a.txt /user/dfstest/a.txt
## 把本地a.txt文件上传到hdfs的/user/dfstest/目录下

##复制
## hdfs dfs -copyFromLocal <本地文件路径> <HDFS目标路径>
hdfs dfs -copyFromLocal a.txt /user/a.txt
## 把本地的a.txt文件复制到hdfs的/user/目录下

##移动
## hdfs dfs -moveFromLocal <本地文件路径> <HDFS目标路径>
hdfs dfs -moveFromLocal a.txt /a.txt
## 把本地的a.txt文件移动到hdfs的/下
[root@master ~]# hdfs dfs -ls /
[root@master ~]# hdfs dfs -mkdir /user/dfstest
mkdir: `hdfs://master:8020/user': No such file or directory
[root@master ~]# hdfs dfs -mkdir -p /user/dfstest
[root@master ~]# hdfs dfs -put a.txt /user/dfstest/a.txt
[root@master ~]# hdfs dfs -copyFromLocal a.txt /user/a.txt
[root@master ~]# hdfs dfs -moveFromLocal a.txt /a.txt
[root@master ~]# hdfs dfs -ls /
Found 2 items
-rw-r--r--   3 root supergroup         51 2024-09-20 10:52 /a.txt
drwxr-xr-x   - root supergroup          0 2024-09-20 10:52 /user

3. 下载文件到本地

使用 `get` 命令将 HDFS 上的文件下载到本地文件系统。
hdfs dfs -get <HDFS文件路径> <本地目标路径>

4. 查看文件内容

使用 `cat` 命令可以查看 HDFS 中文件的内容。
hdfs dfs -cat <HDFS文件路径>

[root@master ~]# ls
anaconda-ks.cfg  hadoop-3.3.6.tar.gz  jdk1.8.0_112.tgz  Packages  yum
[root@master ~]# hdfs dfs -get /user/a.txt ./a.txt
[root@master ~]# ls
anaconda-ks.cfg  a.txt  hadoop-3.3.6.tar.gz  jdk1.8.0_112.tgz  Packages  yum
[root@master ~]# cat a.txt
this is a test txt
i will put it to hdfs
just test
[root@master ~]#

5. 删除文件

使用 `rm` 命令删除 HDFS 上的文件。
hdfs dfs -rm <HDFS文件路径>

[root@master ~]# hdfs dfs -ls /user
Found 2 items
-rw-r--r--   3 root supergroup         51 2024-09-20 10:52 /user/a.txt
drwxr-xr-x   - root supergroup          0 2024-09-20 10:51 /user/dfstest
[root@master ~]# hdfs dfs -rm /user/a.txt
Deleted /user/a.txt
[root@master ~]# hdfs dfs -ls /user
Found 1 items
drwxr-xr-x   - root supergroup          0 2024-09-20 10:51 /user/dfstest

6. 删除目录

使用 `rm -r` 命令可以递归删除 HDFS 上的目录及其内容。
hdfs dfs -rm -r <HDFS目录路径>

[root@master ~]# hdfs dfs -ls /user
Found 1 items
drwxr-xr-x   - root supergroup          0 2024-09-20 10:51 /user/dfstest
[root@master ~]# hdfs dfs -rm -r /user/dfstest
Deleted /user/dfstest
[root@master ~]# hdfs dfs -ls /user

7. 查看文件或目录状态

使用 `stat` 命令查看文件或目录的详细状态信息。
hdfs dfs -stat <HDFS文件或目录路径>

[root@master ~]# hdfs dfs -stat /a.txt
2024-09-20 02:52:26
[root@master ~]# hdfs dfs -stat /user
2024-09-20 03:05:45

8.其他命令

Usage: hadoop fs [generic options]
        [-appendToFile [-n] <localsrc> ... <dst>]
        [-cat [-ignoreCrc] <src> ...]
        [-checksum [-v] <src> ...]
        [-chgrp [-R] GROUP PATH...]
        [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
        [-chown [-R] [OWNER][:[GROUP]] PATH...]
        [-concat <target path> <src path> <src path> ...]
        [-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] [-q <thread pool queue size>] <localsrc> ... <dst>]
        [-copyToLocal [-f] [-p] [-crc] [-ignoreCrc] [-t <thread count>] [-q <thread pool queue size>] <src> ... <localdst>]
        [-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] [-s] <path> ...]
        [-cp [-f] [-p | -p[topax]] [-d] [-t <thread count>] [-q <thread pool queue size>] <src> ... <dst>]
        [-createSnapshot <snapshotDir> [<snapshotName>]]
        [-deleteSnapshot <snapshotDir> <snapshotName>]
        [-df [-h] [<path> ...]]
        [-du [-s] [-h] [-v] [-x] <path> ...]
        [-expunge [-immediate] [-fs <path>]]
        [-find <path> ... <expression> ...]
        [-get [-f] [-p] [-crc] [-ignoreCrc] [-t <thread count>] [-q <thread pool queue size>] <src> ... <localdst>]
        [-getfacl [-R] <path>]
        [-getfattr [-R] {-n name | -d} [-e en] <path>]
        [-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
        [-head <file>]
        [-help [cmd ...]]
        [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]]
        [-mkdir [-p] <path> ...]
        [-moveFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
        [-moveToLocal <src> <localdst>]
        [-mv <src> ... <dst>]
        [-put [-f] [-p] [-l] [-d] [-t <thread count>] [-q <thread pool queue size>] <localsrc> ... <dst>]
        [-renameSnapshot <snapshotDir> <oldName> <newName>]
        [-rm [-f] [-r|-R] [-skipTrash] [-safely] <src> ...]
        [-rmdir [--ignore-fail-on-non-empty] <dir> ...]
        [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
        [-setfattr {-n name [-v value] | -x name} <path>]
        [-setrep [-R] [-w] <rep> <path> ...]
        [-stat [format] <path> ...]
        [-tail [-f] [-s <sleep interval>] <file>]
        [-test -[defswrz] <path>]
        [-text [-ignoreCrc] <src> ...]
        [-touch [-a] [-m] [-t TIMESTAMP (yyyyMMdd:HHmmss) ] [-c] <path> ...]
        [-touchz <path> ...]
        [-truncate [-w] <length> <path> ...]
        [-usage [cmd ...]]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值