0


【大数据】HDFS客户端命令行(hdfs dfs)详细使用说明

DFS命令使用

概览

hadoop分布式文件系统客户端命令行操作
在这里插入图片描述
全局变量说明

<path> … hdfs中一个或多个路径,如果未指定,默认为/user/<currentUser><localsrc> … 本地文件系统的的一个或多个路径
<dst> hdfs中目标路径

查看帮助

命令:hdfs dfs -help  [cmd ...]
参数:
    cmd... 需要查询的一个或多个命令

使用说明

Usage: hadoop fs [generic options][-appendToFile <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>]<localsrc>... <dst>][-copyToLocal [-f][-p][-ignoreCrc][-crc]<src>... <localdst>][-count [-q][-h][-v][-t [<storage type>]][-u][-x][-e][-s]<path>...][-cp [-f][-p | -p[topax]][-d]<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][-ignoreCrc][-crc]<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>]<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 ...]]

Path 路径支持正则表达式
通配符名称匹配星号匹配0或多个字符?问号匹配单一字符[ab]字符类别匹配{a,b}中的一个字符[^ab]非字符类别匹配不是{a,b}中的一个字符[a-b]字符范围匹配一个在{a,b}范围内的 字符(包括ab),a在字典 顺序上要小于或等于b[^a-b]非字符范围匹配一个不在{a,b}范围内 的字符(包括ab),a在字 典顺序上要小于或等于b{a,b}或选择匹配包含a或b中的一个的语句
匹配例子
通配符扩展/
/2007/2008///2007/12 /2008/01//12//2007/12/30 /2007/12/31/200?/2007 /2008/200[78]/2007 /2008/200[7-8]/2007 /2008/200[^01234569]/2007 /2008///{31,01}/2007/12/31 /2008/01/01///3{0,1}/2007/12/30 /2007/12/31/*/{12/31,01/01}/2007/12/31 /2008/01/01

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -e /yarn/logs
Found 5 items
-rw-r--r--   2 root root Replicated   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root Replicated     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root Replicated       24522023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root                     02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root Replicated       22212023-03-11 11:10 /yarn/logs/start-all.sh
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -e /yarn/logs/had*.log
-rw-r--r--   2 root root Replicated     1545252023-03-11 10:51 /yarn/logs/hadoop.log

ls

展示文件列表

此命令调用的是

org.apache.hadoop.fs.shell.Ls

使用

[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [<path> ...]]
-C        仅显示文件和目录的路径
-d        只展示目录
-h       以人类可读的方式格式化文件大小,而不是按字节数
-q       用?代替无法打印的字符
-R      递归地列出目录的内容
-t        按修改时间对文件排序(最近的第一次)
-S        根据文件大小排序
-r        颠倒排序顺序,配合-t -S 使用
-u        使用最近访问的时间代替(modification time)展示和排序
-e        展示路径的ec策略
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls /yarn/logs
Found 5 items
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root       22212023-03-11 11:10 /yarn/logs/start-all.sh

-C 只显示目录或者文件那一列

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -C /yarn/logs
/yarn/logs/hadoop-client-runtime-3.3.1.jar
/yarn/logs/hadoop.log
/yarn/logs/httpfs.log
/yarn/logs/root
/yarn/logs/start-all.sh

-d 只展示目录

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -d /yarn/logs
drwxrwxrwt   - root root          02023-03-11 10:51 /yarn/logs
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -C -d /yarn/logs
/yarn/logs

-h 格式化文件大小,目录大小为 0

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -h /yarn/logs
Found 5 items
-rw-r--r--   2 root root     30.2 M 2023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root    150.9 K 2023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root      2.4 K 2023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root      2.2 K 2023-03-11 11:10 /yarn/logs/start-all.sh

-R 递归展示目录内容

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -h -R /yarn/logs
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root
drwxrwx---   - root root          02023-03-06 08:03 /yarn/logs/root/bucket-logs-tfile
drwxrwx---   - root root          02023-02-15 17:01 /yarn/logs/root/bucket-logs-tfile/0001
drwxrwx---   - root root          02023-02-14 16:02 /yarn/logs/root/bucket-logs-tfile/0001/application_1676356354068_0001
-rw-r-----   2 root root    299.1 K 2023-02-14 16:02 /yarn/logs/root/bucket-logs-tfile/0001/application_1676356354068_0001/spark-31_45454

-t 根据修改时间(modification time)排序

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls /yarn/logs
Found 5 items
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root       22212023-03-11 11:10 /yarn/logs/start-all.sh
# 对比 时间排序[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -t /yarn/logs
Found 5 items
-rw-r--r--   2 root root       22212023-03-11 11:10 /yarn/logs/start-all.sh
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root

-S 根据文件大小排序

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -S /yarn/logs
Found 5 items
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
-rw-r--r--   2 root root       22212023-03-11 11:10 /yarn/logs/start-all.sh
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root

-r 反向排序

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -S -r /yarn/logs
Found 5 items
drwxrwx---   - root root          02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root       22212023-03-11 11:10 /yarn/logs/start-all.sh
-rw-r--r--   2 root root       24522023-03-11 10:51 /yarn/logs/httpfs.log
-rw-r--r--   2 root root     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar

-e 展示路径的ec策略

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -ls -e /yarn/logs
Found 5 items
-rw-r--r--   2 root root Replicated   317172922023-03-11 11:09 /yarn/logs/hadoop-client-runtime-3.3.1.jar
-rw-r--r--   2 root root Replicated     1545252023-03-11 10:51 /yarn/logs/hadoop.log
-rw-r--r--   2 root root Replicated       24522023-03-11 10:51 /yarn/logs/httpfs.log
drwxrwx---   - root root                     02023-02-14 16:01 /yarn/logs/root
-rw-r--r--   2 root root Replicated       22212023-03-11 11:10 /yarn/logs/start-all.sh

df

展示文件系统的总容量,空闲和已使用大小

此命令调用的是

org.apache.hadoop.fs.shell.Df

使用

-df [-h] [<path> ...]
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -df /
Filesystem                   Size        Used      Available  Use%
hdfs://cdp-cluster  4936800665600154413465648534171320320%
# 只有 available 不一样[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -df /yarn/logs
Filesystem                   Size        Used      Available  Use%
hdfs://cdp-cluster  4936800665600154413465648534255697920%

du

展示指定文件或目录大小 单位为:bytes

此命令调用的是

org.apache.hadoop.fs.shell.Du

使用

-du [-s] [-h] [-v] [-x] <path>
-s        展示总目录大小
-h      人性化format文件大小
-v        展示列表头信息
-x        排除 snapshots
# 正常使用[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -du -h /yarn/logs30.2 M   60.5 M   /yarn/logs/hadoop-client-runtime-3.3.1.jar
150.9 K  301.8 K  /yarn/logs/hadoop.log
2.4 K    4.8 K    /yarn/logs/httpfs.log
117.2 M  234.5 M  /yarn/logs/root
2.2 K    4.3 K    /yarn/logs/start-all.sh
# 展示header和格式化展示[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -du -h -v /yarn/logs
SIZE     DISK_SPACE_CONSUMED_WITH_ALL_REPLICAS  FULL_PATH_NAME
30.2 M   60.5 M                                 /yarn/logs/hadoop-client-runtime-3.3.1.jar
150.9 K  301.8 K                                /yarn/logs/hadoop.log
2.4 K    4.8 K                                  /yarn/logs/httpfs.log
117.2 M  234.5 M                                /yarn/logs/root
2.2 K    4.3 K                                  /yarn/logs/start-all.sh
# 展示header和格式化展示以及目录大小[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -du -s -h -v /yarn/logs
SIZE     DISK_SPACE_CONSUMED_WITH_ALL_REPLICAS  FULL_PATH_NAME
147.6 M  295.3 M                                /yarn/logs

count

列出文件夹数量、文件数量、内容大小

此命令调用的是

org.apache.hadoop.fs.shell.Count

使用

[-count [-q] [-h] [-v] [-t [<storage type>]] [-u] [-x] [-e] [-s] <path> ...]
-q        展示目录quota信息
-h        人性化format文件大小
-v        展示列表头信息
-t        展示quota的storage type
-u        展示quota和使用率信息,没有文件数目和文件内容大小
-x        排除 snapshots
-e        展示路径的ec策略
-s        展示snapshots信息
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -count -v /yarn/logs
   DIR_COUNT   FILE_COUNT       CONTENT_SIZE PATHNAME
          6965154821533 /yarn/logs

展示quota信息

[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -count -v -q /yarn/logs
       QUOTA       REM_QUOTA     SPACE_QUOTA REM_SPACE_QUOTA    DIR_COUNT   FILE_COUNT       CONTENT_SIZE PATHNAME
     10000009998661073741824001070645393346965154821533 /yarn/logs

setfacl

通过POSIX ACL 机制,可以实现 HDFS 文件系统更精细化的权限控制

此命令调用的是

org.apache.hadoop.fs.shell.SetfaclCommand

在使用之前需要先开启 acl

<property><name>dfs.permissions.enabled</name><value>true</value></property><property><name>dfs.namenode.acls.enabled</name><value>true</value></property>

使用

"[-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]"

常用选项描述-b删除基本 ACL 条目以外的所有条目,保留用户,组和其他以与权限位兼容-k删除缺省 ACL-R以递归方式将操作应用于所有文件和目录-m修改 ACL,新条目将添加到 ACL,并保留现有条目-x删除指定的 ACL 条目,保留其他 ACL 条目-set表示完全替换 ACL,丢弃所有现有条目acl_spec表示通过逗号分隔的 ACL 条目列表path要修改的文件或目录

# 将 /yarn/logs/start-all.sh 文件授权给 hadoop 用户可读、写权限。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl -m user:hadoop:rw- /yarn/logs/start-all.sh# 清除 hadoop 用户对 /yarn/logs/start-all.sh 文件的可读、写权限。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl -x user:hadoop /yarn/logs/start-all.sh# 清除 /yarn/logs/start-all.sh 文件基本 ACL 规则以外的所有规则。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl -b /yarn/logs/start-all.sh# 清除 /yarn/logs/start-all.sh 目录默认 ACL 规则。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl -k /yarn/logs/start-all.sh# 重新设置 /yarn/logs/start-all.sh 目录的 ACL 规则,此操作会丢弃所有现有规则。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl --set user::rw-,user:hadoop:rw-,group::r-x,other::r-- /yarn/logs/start-all.sh# 以递归方式将 ACL 规则应用于 /yarn/logs/start-all.sh 目录下的所有文件和子目录中。[root@spark-31 hadoop-3.3.1]# hdfs dfs  -setfacl -R -m user:hadoop:r-x /yarn/logs/start-all.sh# 用来设置 /yarn/logs/start-all.sh 目录的缺省 ACL 规则。[root@spark-31 hadoop-3.3.1]# hdfs dfs -setfacl -m default:user:hdfs:r-x /yarn/logs/start-all.sh

getfacl

getfacl 用来显示文件和目录的访问控制列表,如果目录具有默认 ACL,则 getfacl 还会显示默认 ACL。此参数用法如下:

此命令调用的是

org.apache.hadoop.fs.shell.GetfaclCommand

使用

[-R] <path>
-R,以递归方式列出所有文件和目录的 ACL;
[root@spark-31 hadoop-3.3.1]# hdfs dfs -getfacl /yarn/logs/start-all.sh# file: /yarn/logs/start-all.sh# owner: root# group: root
user::rw-
user:hive:rw-
group::r--
mask::rw-
other::r--

getmerge

将HDFS上指定目录下的所有内容合并成一个文件,并下载到本地。

此命令调用的是

org.apache.hadoop.fs.shell.Merge

使用

[-getmerge [-nl] [-skip-empty-file] <src> <localdst>]
-nl        在每个文件的末尾添加一个新行字符。
-skip-empty-file        跳过空的文件
cat a.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cat b.txt
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
hdfs dfs -getmerge -nl /yarn/logs/*.log merge.txt
cat merge.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

cp

将一个文件拷贝到目标地,当拷贝的是多个文件时,目标必须是一个目录,保留其原有权限

此命令调用的是

org.apache.hadoop.fs.shell.Cp

使用

[-cp [-f] [-p | -p[topax]] [-d] <src> ... <dst>]
-f        如果目标已存在,则覆盖该目标
-p | -p[topax]     保留状态,参数[topax]分别表示(时间戳、所有权、权限、ACL、XAttr),无参数则不保留状态
-d     跳过创建临时文件
hdfs dfs -cp /user/data/a.txt /user/data1/

copyFromLocal和put

从本地拷贝文件到HDFS中,**如果目标已经存在,则拷贝失败,除非使用

 -f

**

此命令调用的是

org.apache.hadoop.fs.shell.CopyFromLocal


此命令调用的是

org.apache.hadoop.fs.shell.Put

使用

[-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>]
-f        如果目标已存在,则覆盖该目标
-p        保留原有权限信息
-l         允许DN使用lazily保存文件
-d         跳过创建临时文件
-t         线程数,默认为1
bin/hdfs dfs -copyFromLocal c.txt /user/data1/
bin/hdfs dfs -put c.txt /user/data1/

copyToLocal和-get

从HDFS上拷贝文件到本地,当源文件是多个的时候,目标地必须是目录

此命令调用的是

org.apache.hadoop.fs.shell.CopyToLocal


此命令调用的是

org.apache.hadoop.fs.shell.Get

使用

[-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
-f        如果目标已存在,则覆盖该目标
-p        保留原有权限信息
-ignoreCrc         忽略CRC校验
-crc         使用CRC校验
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -copyToLocal -f /user/data1/*.txt  ./[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -get -f /user/data1/*.txt  ./

appendToFile

将本地文件内容追加到目标文件中,如果目标文件不存在,就会自动创建。

此命令调用的是

org.apache.hadoop.fs.shell.AppendToFile

使用

<localsrc> ... <dst>
[root@spark-31 hadoop-3.3.1]# bin/hdfs dfs -appendToFile a.txt /user/data1/x.txt
标签: hdfs 大数据 dfs

本文转载自: https://blog.csdn.net/u013412066/article/details/129434863
版权归原作者 笑起来贼好看 所有, 如有侵权,请联系我们删除。

“【大数据】HDFS客户端命令行(hdfs dfs)详细使用说明”的评论:

还没有评论