官方文档

用法:hdfs dfs | hadoop fs [COMMAND [COMMAND_OPTIONS]]

appendToFile

用法:hadoop fs -appendToFile <localsrc> ... <dst>

将本地文件系统中的单个 src 或多个 src 追加到目标文件系统。还从 stdin 读取输入并追加到目标文件系统。

例:

  • hadoop fs -appendToFile localfile /user/hadoop/hadoopfile
  • hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
  • hadoop fs -appendToFile localfile hdfs://nn.example.com/hadoop/hadoopfile
  • hadoop fs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile 从 stdin 读取输入

cat

用法:hadoop fs -cat [-ignoreCrc] URI [URI ...]

将源文件复制到标准输出/目的文件。

选项:

  • -ignoreCrc 禁用检查结果验证

例:

  • hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
  • hadoop fs -cat file:///file3 /user/hadoop/file4

checksum

用法:hadoop fs -checksum [-v] URI

返回文件的校验和信息。

选项:

  • -v 显示文件的块大小

例:

  • hadoop fs -checksum hdfs://nn1.example.com/file1
  • hadoop fs -checksum file:///etc/hosts

chgrp

用法:hadoop fs -chgrp [-R] GROUP URI [URI ...]

更改文件的组关联。用户必须是文件的所有者,否则就是超级用户。

选项:

  • -R 将通过目录结构以递归方式进行更改

chmod

用法:hadoop fs -chmod [-R] <MODE[,MODE]... |OCTALMODE> URI [URI ...]

更改文件的权限。使用 -R 通过目录结构以递归方式进行更改。用户必须是文件的所有者,否则就是超级用户。

选项:

  • -R 将通过目录结构以递归方式进行更改

chown

用法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]

更改文件的所有者。用户必须是超级用户。

选项:

  • -R 将通过目录结构以递归方式进行更改

count

用法:hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] [-e] [-s] <paths>

计算与指定文件模式匹配的路径下的目录、文件和字节数。

选项:

  • -t 显示每种存储类型的配额和使用情况
  • -h 以可读格式显示大小
  • -v 显示标题行
  • -x 从结果计算中排除快照
  • -e 显示每个文件的纠删码策略
  • -s 每个目录的快照计数

例:

  • hadoop fs -count hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
  • hadoop fs -count -q hdfs://nn1.example.com/file1
  • hadoop fs -count -q -h hdfs://nn1.example.com/file1
  • hadoop fs -count -q -h -v hdfs://nn1.example.com/file1
  • hadoop fs -count -u hdfs://nn1.example.com/file1
  • hadoop fs -count -u -h hdfs://nn1.example.com/file1
  • hadoop fs -count -u -h -v hdfs://nn1.example.com/file1
  • hadoop fs -count -e hdfs://nn1.example.com/file1
  • hadoop fs -count -s hdfs://nn1.example.com/file1

cp

用法:hadoop fs -cp [-f] [-p | -p[topax]] [-t <thread count>] [-q <thread pool queue size>] URI [URI ...] <dest>

将文件从源复制到目标。此命令还允许多个源,在这种情况下,目标必须是目录。

选项:

  • -f 如果目标已存在,则覆盖它
  • -d 跳过创建后缀为._COPYING_的临时文件
  • -p 保留文件属性 [topx](时间戳、所有权、权限、ACL、XAttr)。如果指定了不带 arg 的 -p,则保留时间戳、所有权和权限。如果指定了 -pa,则保留权限,因为 ACL 是权限的超集
  • -t <线程计数> 要使用的线程数,默认值为 1。在复制包含 1 个以上文件的目录时很有用
  • -q <线程池队列大小> 要使用的线程池队列大小,默认值为 1024。仅当线程计数大于 1 时,它才会生效

例:

  • hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
  • hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
  • hadoop fs -cp -t 5 /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
  • hadoop fs -cp -t 10 -q 2048 /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

df

用法:hadoop fs -df [-h] URI [URI ...]

显示可用空间。

选项:

  • -h 以可读格式显示大小

例:

  • hadoop dfs -df /user/hadoop/dir1

du

用法:hadoop fs -du [-s] [-h] [-v] [-x] URI [URI ...]

显示给定目录中包含的文件和目录的大小,或者如果它只是一个文件,则显示文件的长度。

返回以下三列信息:

size disk_space_consumed_with_all_replicas full_path_name

选项:

  • -s 显示文件长度的聚合摘要,而不是单个文件
  • -h 以可读格式显示大小
  • -v 选项将列名显示为标题行
  • -x 选项将从结果计算中排除快照。如果没有 -x 选项(默认值),则始终从所有 INode(包括给定路径下的所有快照)计算结果

例:

  • hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1

expunge

用法:hadoop fs -expunge [-immediate] [-fs <path>]

从回收站目录中永久删除早于保留阈值的检查点中的文件,并创建新的检查点。

创建检查点时,回收站中最近删除的文件将移动到检查点下。早于 fs.trash.interval 的检查点中的文件将在下次调用 -expunge 命令时被永久删除。

如果文件系统支持该功能,则用户可以配置为通过存储为 fs.trash.checkpoint.interval 的参数(在核心站点中.xml)定期创建和删除检查点。此值应小于或等于 fs.trash.interval

选项:

  • --immediate 立即删除当前用户的回收站中的所有文件,忽略 fs.trash.interval 设置
  • -fs 清除指定的文件系统,而不是创建缺省文件系统和检查点

例:

  • hadoop fs -expunge --immediate -fs s3a://landsat-pds/

find

用法:hadoop fs -find <path> ... <expression> ...

查找与指定表达式匹配的所有文件,并将所选操作应用于这些文件。如果未指定路径,则默认为当前工作目录。如果未指定表达式,则默认为 -print。

选项:

  • -name 查找指定名称文件
  • -iname 查找指定名称文件,不区分大小写

例:

  • hadoop fs -find / -name test -print

get / copyToLocal

用法:hadoop fs -get [-ignorecrc][-crc] [-p][-f] [-t <thread count>][-q ] <src> ... <localdst>

将文件复制到本地文件系统。

选项:

  • -p 保留访问和修改时间,所有权和权限(假设权限可以跨文件系统传播)
  • -f 如果目标已存在,则覆盖它
  • -ignorecrc 跳过对已下载文件的CRC检查
  • -crc 为下载的文件写入CRC校验和
  • -t <线程计数> 要使用的线程数,默认值为 1。下载包含 1 个以上文件的目录时很有用
  • -q <线程池队列大小> 要使用的线程池队列大小,默认值为 1024。仅当线程计数大于 1 时,它才会生效

例:

  • hadoop fs -get /user/hadoop/file localfile
  • hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile
  • hadoop fs -get -t 10 hdfs://nn.example.com/user/hadoop/dir1 localdir
  • hadoop fs -get -t 10 -q 2048 hdfs://nn.example.com/user/hadoop/dir* localdir

getfacl

用法:hadoop fs -getfacl [-R] <path>

显示文件和目录的访问控制列表 (ACL)。

选项:

  • -R 以递归方式列出所有文件和目录的 ACL

例:

  • hadoop fs -getfacl /file
  • hadoop fs -getfacl -R /dir

getfattr

用法:hadoop fs -getfattr [-R] -n name | -d [-e en] <path>

显示文件或目录的扩展属性名称和值(如果有)。

选项:

  • -R 以递归方式列出所有文件和目录的属性
  • -n name 转储命名的扩展属性值
  • -d 转储与路径名关联的所有扩展属性值
  • -e encoding 检索值后对其进行编码。有效的编码是 “text”, “hex”, 和 “base64”

例:

  • hadoop fs -getfattr -d /file
  • hadoop fs -getfattr -R -n user.myAttr /dir

getmerge

用法:hadoop fs -getmerge [-nl] <src> <localdst>

将源目录或多个源文件写入到本地目标文件。

选项:

  • -nl 允许在每个文件的末尾添加换行符
  • -skip-empty-file 可用于在出现空文件时避免不需要的换行符

例:

  • hadoop fs -getmerge -nl /src /opt/output.txt
  • hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt

用法:hadoop fs -head URI

显示文件的前一千字节。

例:

  • hadoop fs -head pathname

help

用法:hadoop fs -help

显示帮助。

ls

用法:hadoop fs -ls [-C][-d] [-h][-q] [-R][-t] [-S][-r] [-u][-e] <args>

(list) 显示信息。

选项:

  • -C 仅显示文件和目录的路径
  • -d 目录作为普通文件列出
  • -h 以可读格式显示文件大小
  • -q 打印 ?而不是不可打印的字符
  • -R 递归列出遇到的子目录
  • -t 按修改时间对输出进行排序(最近的时间在前)
  • -S 按文件大小对输出进行排序
  • -r 反转排序顺序
  • -u 使用访问时间而不是修改时间进行显示和排序
  • -e 仅显示文件和目录的纠删码策略

mkdir

用法:hadoop fs -mkdir [-p] <paths>

创建目录。

选项:

  • -p 沿路径创建父目录。

例:

  • hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2

mv

用法:hadoop fs -mv URI [URI ...] <dest>

将文件从源移动到目标。此命令还允许多个源,在这种情况下,目标需要是目录。不允许在文件系统之间移动文件。

例:

  • hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
  • hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1

put / copyFromLocal

用法:hadoop fs -put [-f][-p] [-l][-d] [-t <thread count>][-q ] [ - | <localsrc> ...] <dst>

将单个或多个源文件从本地文件系统复制到目标文件系统(HDFS)。

选项:

  • -p 保留访问和修改时间,所有权和权限
  • -f 如果目标已存在,则覆盖它
  • -l 允许 DataNode 将文件懒惰地保存到磁盘,强制复制因子为 1(此标志将导致持久性降低)
  • -d 跳过创建后缀为._COPYING_的临时文件
  • -t <线程计数> 要使用的线程数,默认值为 1
  • -q <线程池队列大小> 要使用的线程池队列大小,默认值为 1024

例:

  • hadoop fs -put localfile /user/hadoop/hadoopfile
  • hadoop fs -put -f localfile1 localfile2 /user/hadoop/hadoopdir
  • hadoop fs -put -d localfile hdfs://nn.example.com/hadoop/hadoopfile
  • hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile从 stdin 读取输入
  • hadoop fs -put -t 5 localdir hdfs://nn.example.com/hadoop/hadoopdir
  • hadoop fs -put -t 10 -q 2048 localdir1 localdir2 hdfs://nn.example.com/hadoop/hadoopdir

rm

用法:hadoop fs -rm [-f][-r |-R] [-skipTrash][-safely] URI [URI ...]

删除指定文件/目录。如果启用了垃圾桶,则文件系统会将已删除的文件移动到垃圾箱目录。目前,默认情况下,垃圾桶功能处于禁用状态。用户可以通过为参数 fs.trash.interval 设置大于零的值来启用垃圾桶(core-site.xml)。

选项:

  • -f 如果文件不存在,-f 选项将不显示诊断消息或修改退出状态以反映错误
  • -R | -r 以递归方式删除目录及其下的任何内容
  • -skipTrash 跳过垃圾箱(如果启用),并立即删除指定的文件
  • -safely 选项在删除文件总数大于 hadoop.shell.delete.limit.num.files 的目录之前需要安全确认(在 core-site.xml中,默认值:100)

rmdir

用法:hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]

删除指定空目录。

选项:

  • --ignore-fail-on-non-empty:如果目录仍包含文件,则不会失败

setfacl

用法:hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>]

设置文件或目录的访问控制列表 (ACL)。

选项:

  • -b 删除除基本 ACL 条目之外的所有条目,保留用户、组和其他条目,以便与权限位兼容
  • -k 删除默认 ACL
  • -R 以递归方式对所有文件和目录应用操作
  • -m 修改 ACL。新条目将添加到 ACL,并保留现有条目
  • -x 删除指定的 ACL 条目。将保留其他 ACL 条目
  • --set 完全替换 ACL,丢弃所有现有条目。acl_spec必须包括用户、组和其他条目,以便与权限位兼容。如果 ACL 规范仅包含访问条目,则保留现有的默认条目。如果 ACL 规范仅包含默认条目,则保留现有访问条目。如果 ACL 规范同时包含访问条目和默认条目,则两者都将被替换。
  • acl_spec 以逗号分隔的 ACL 条目列表
  • path 要修改的文件或目录

例:

  • hadoop fs -setfacl -m user:hadoop:rw- /file
  • hadoop fs -setfacl -x user:hadoop /file
  • hadoop fs -setfacl -b /file
  • hadoop fs -setfacl -k /dir
  • hadoop fs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file
  • hadoop fs -setfacl -R -m user:hadoop:r-x /dir
  • hadoop fs -setfacl -m default:user:hadoop:r-x /dir

setfattr

用法:hadoop fs -setfattr -n name [-v value] | -x name <path>

设置文件或目录的扩展属性名称和值。

选项:

  • -n name 扩展属性名称
  • -v value 扩展的属性值(该值有三种不同的编码方法。如果参数括在双引号中,则该值是引号内的字符串;如果参数以 0x 或 0X 为前缀,则将其视为十六进制数;如果参数以 0 或 0S 开头,则将其作为 base64 编码)
  • -x name 删除该扩展属性
  • path 文件或目录

例:

  • hadoop fs -setfattr -n user.myAttr -v myValue /file
  • hadoop fs -setfattr -n user.noValue /file
  • hadoop fs -setfattr -x user.myAttr /file

setrep

用法:hadoop fs -setrep [-R][-w] <numReplicas> <path>

更改文件的副本数。如果 path 是一个目录,则该命令以递归方式更改 path 的目录树下所有文件的复制因子。执行此命令时,将忽略 EC 文件。

选项:

  • -w 等待复制完成

例:

  • hadoop fs -setrep -w 3 /user/hadoop/dir1

stat

用法:hadoop fs -stat [format] <path> ...

以指定格式打印有关<路径>的文件/目录的统计信息。格式接受八进制 (%a) 和符号 (%A) 中的权限、以字节为单位的文件大小 (%b)、类型 (%F)、所有者的组名 (%g)、名称 (%n)、块大小 (%o)、复制 (%r)、所有者的用户名 (%u)、访问日期(%x、%X) 和修改日期 (%y、%Y)。%x 和 %y 将 UTC 日期显示为“yyyy-MM-dd HH:mm:ss”,%X 和 %Y 显示自 1970 年 1 月 1 日 UTC 以来的毫秒数。如果未指定格式,则默认使用 %y。

例:

  • hadoop fs -stat "type:%F perm:%a %u:%g size:%b mtime:%y atime:%x name:%n" /file

stat结果

tail

用法:hadoop fs -tail [-f] URI

显示文件的最后一个千字节。

选项:

  • -f 将随着文件的增长输出追加的数据(动态显示)

test

用法:hadoop fs -test -[defswrz] URI

判断一些信息。

选项:

  • -d 如果路径是目录,则返回 0
  • -e 如果路径存在,则返回 0
  • -f 如果路径是文件,则返回 0
  • -s 如果路径不为空,则返回 0
  • -w 如果路径存在并授予写入权限,则返回 0
  • -r 如果路径存在并授予了读取权限,则返回 0
  • -z 如果文件长度为零,则返回 0

例:

  • hadoop fs -test -e filename

text

用法:hadoop fs -text <src>

获取源文件并以文本格式输出该文件。允许的格式是 zip 和 TextRecordInputStream。

touch

用法:hadoop fs -touch [-a][-m] [-t TIMESTAMP][-c] URI [URI ...]

将 URI 指定的文件的访问和修改时间更新为当前时间。如果该文件不存在,则会在 URI 处创建一个空文件,并将当前时间作为该 URI 的时间戳。

选项:

  • -a 仅更改访问时间
  • -m 仅更改修改时间
  • -t 指定时间戳(格式为 yyyyMMdd:HHmmss)而不是当前时间
  • -c 如果文件不存在,则不创建文件

例:

  • hadoop fs -touch pathname
  • hadoop fs -touch -m -t 20180809:230000 pathname
  • hadoop fs -touch -t 20180809:230000 pathname
  • hadoop fs -touch -a pathname

touchz

用法:hadoop fs -touchz URI [URI ...]

创建长度为零的文件。如果存在长度不为零的该文件,则返回错误。

truncate

用法:hadoop fs -truncate [-w] <length> <paths>

将指定文件模式匹配的所有文件截断为指定长度。

选项:

  • -w 请求命令等待块恢复完成

例:

  • hadoop fs -truncate 55 /user/hadoop/file1 /user/hadoop/file2
  • hadoop fs -truncate -w 127 hdfs://nn1.example.com/user/hadoop/file1

concat

用法:hadoop fs -concat <target file> <source files>

将现有(多个)源文件连接到目标文件中。目标文件和源文件应位于同一目录中。

例:

  • hadoop fs -concat hdfs://cluster/user/hadoop/target-file hdfs://cluster/user/hadoop/file-0 hdfs://cluster/user/hadoop/file-1

usage

用法:hadoop fs -usage command

返回单个指定命令的帮助信息。

posted on 2022-06-24 16:11  ADataer  阅读(89)  评论(0编辑  收藏  举报