Hadoop FS Shell 命令

概述(Hadoop版本2.8.4)

文件系统(FS) shell包括与Hadoop分布式文件系统(HDFS)以及Hadoop支持的其他文件系统(如本地FS、HFTP FS、S3 FS等)直接交互的各种类shell命令。FS shell是通过以下方式调用的:

bin/hadoop fs <args>

appendToFile
用法: hadoop fs -appendToFile <localsrc> ... <dst>
将单个src或多个srcs从本地文件系统追加到目标文件系统。还从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 ...]
将源路径文本复制到stdout。
选项:
-ignorecrc选项禁用checkshum验证。
举例:

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 URI
返回文件的校验和信息。
举例:

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选项将通过目录结构递归地进行更改。

copyFromLocal
用法: hadoop fs -copyFromLocal <localsrc> URI
类似于fs -put命令,只是源文件仅限于本地文件引用。
选项:
-q:保留访问和修改时间,所有权和权限。(假设权限可以跨文件系统传播)
-f:如果目标已经存在,则重写该目标。
-l:许DataNode将文件延迟保存到磁盘,强制复制因子为1。此标志将导致耐久性降低。小心使用。
-d:跳过创建后缀为. _copying_的临时文件。

copyToLocal
用法: hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
类似于get命令,只是目标被限制为本地文件引用。

count
用法: hadoop fs -count [-q] [-h] [-v] [-x] [-t [<storage type>]] [-u] <paths>
计算与指定文件模式匹配的路径下的目录、文件和字节数。获取配额和使用情况。带有-count的输出列有:DIR_COUNT、FILE_COUNT、CONTENT_SIZE、PATHNAME
选项:
-u和-q选项控制输出包含的列。-q表示显示配额,-u将输出限制为仅显示配额和使用情况。
具有-count -q的输出列有:QUOTA, REMAINING_QUOTA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, PATHNAME
具有-count -u的输出列有:QUOTA, REMAINING_QUOTA, SPACE_QUOTA, REMAINING_SPACE_QUOTA
-t选项显示每种存储类型的配额和使用情况。如果没有给出-u或-q选项,则忽略-t选项。可以在-t选项中使用的可能参数列表(除参数“”外不区分大小写):“”、“all”、“ram_disk”、“ssd”、“disk”或“archive”。
-h选项以人类可读的格式显示大小。
-v选项显示标题行。
-x选项从结果计算中排除快照。没有-x选项(默认),结果总是从所有索引节点计算,包括给定路径下的所有快照。如果给出-u或-q选项,则忽略-x选项。
举例:

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

cp
用法: hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
将文件从源文件复制到目标文件。此命令还允许多个源,在这种情况下,目标必须是一个目录。
选项:
如果目标已经存在,-f选项将覆盖该目标。
-p选项将保留文件属性[topx](时间戳、所有权、权限、ACL、XAttr)。如果没有arg指定-p,则保留时间戳、所有权和权限。如果指定-pa,则保留权限,因为ACL是权限的超集。确定是否保留原始名称空间扩展属性独立于-p标志。
举例:

hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

createSnapshot

deleteSnapshot

df
用法: hadoop fs -df [-h] URI [URI ...]
显示空闲空间。
选项:
-h选项将以“人可读”的方式格式化文件大小(例如: 64.0m而不是67108864)
举例:

hadoop dfs -df /user/hadoop/dir1

du
用法: hadoop fs -du [-s] [-h] [-x] URI [URI ...]
显示给定目录中包含的文件和目录的大小,如果只是文件,则显示文件的长度。
选项:
-s选项将导致显示的是文件长度的汇总汇总,而不是单个文件。没有-s选项,计算是通过从给定路径深入1层来完成的。
-h选项将以“人可读”的方式格式化文件大小(e。g 64.0m而不是67108864)
-x选项将从结果计算中排除快照。没有-x选项(默认),结果总是从所有索引节点计算,包括给定路径下的所有快照。
-du返回三列,格式如下:
size disk_space_consumed_with_all_replicas full_path_name
举例:
hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1

expunge
用法: hadoop fs -expunge
从垃圾目录中永久删除超过保留阈值的检查点中的文件,并创建新的检查点。
创建检查点时,将在检查点下移动垃圾中最近删除的文件。interval之前的检查点中的文件将在下一次调用-expunge命令时被永久删除。
如果文件系统支持该特性,用户可以通过存储为fs. garbage .checkpoint.interval(在core-site.xml中)的参数进行配置,定期创建和删除检查点。这个值应该小于或等于fs. garbage .interval。

find
用法: hadoop fs -find <path> ... <expression> ...
查找与指定表达式匹配的所有文件,并将选定的操作应用于这些文件。如果没有指定路径,则默认为当前工作目录。如果没有指定表达式,则默认为-print。
认可下列主要表达:
-name pattern
-iname pattern
如果文件的basename与使用标准文件系统通配符的模式匹配,则计算为true。如果使用-iname,则匹配不区分大小写。
-print
-print0
总是计算为真。将当前路径名写入标准输出。如果使用-print0表达式,则追加ASCII空字符。
举例:

hadoop fs -find / -name test -print

get
用法: hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
将文件复制到本地文件系统。未通过CRC检查的文件可以使用-ignorecrc选项复制。可以使用-crc选项复制文件和crc。
举例:

hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile

选项:
-p:保留访问和修改时间、所有权和权限。(假设权限可以跨文件系统传播)
-f:如果目标已经存在,则重写该目标。
-ignorecrc: 跳过对下载文件的CRC检查。

-crc: 写CRC校验和的文件下载。

getfacl
用法: hadoop fs -getfacl [-R] <path>
显示文件和目录的访问控制列表。如果目录具有默认ACL,那么getfacl也将显示默认ACL。
选项:
-R: 递归列出所有文件和目录的acl。
path: 要列出的文件或目录。
举例:

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

getfattr
用法: hadoop fs -getfattr [-R] -n name | -d [-e en] <path>
显示文件或目录的扩展属性名和值(如果有)。

getmerge
用法: hadoop fs -getmerge [-nl] <src> <localdst>
将源目录和目标文件作为输入,并将src中的文件连接到目标本地文件中。可选地,可以设置-nl以允许在每个文件的末尾添加换行字符(LF)。-skip-empty-file可用于在文件为空时避免不必要的换行字符。
举例:

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

help
用法: hadoop fs -help
返回使用输出。

ls
用法: hadoop fs -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] <args>
选项:
-C: 只显示文件和目录的路径。
-d: 目录作为普通文件列出。
-h: 以人类可读的方式格式化文件大小(例如64.0m而不是67108864)。
-q: 打印?而不是不可打印的字符。
-R: 递归列出遇到的子目录。
-t: 根据修改时间(最近一次)对输出进行排序。
-S: 按文件大小对输出排序。
-r: 颠倒排序顺序。
-u: 使用访问时间而不是修改时间来显示和排序。
对于一个文件,ls以以下格式返回该文件的stat:
permissions number_of_replicas userid groupid filesize modification_date modification_time filename
对于一个目录,它返回它的直接子目录列表,就像在Unix中一样。目录如下:
permissions userid groupid modification_date modification_time dirname
默认情况下,目录中的文件是按文件名排序的。
举例:

hadoop fs -ls /user/hadoop/file1

mkdir
用法: hadoop fs -mkdir [-p] <paths>
将路径uri作为参数并创建目录。
选项:
-p选项行为非常类似于Unix mkdir -p,它沿着路径创建父目录。
举例:

hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir

moveFromLocal
用法: hadoop fs -moveFromLocal <localsrc> <dst>
类似于put命令,只是源localsrc在复制之后会被删除。

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
用法: hadoop fs -put [-f] [-p] [-l] [-d] [ - | <localsrc1> .. ]. <dst>
将单个src或多个srcs从本地文件系统复制到目标文件系统。如果源文件设置为“-”,则从stdin读取输入并写入目标文件系统
如果文件已经存在,则复制失败,除非给出-f标志。
-p: 保留访问和修改时间,所有权和权限。(假设权限可以跨文件系统传播)
-f: 如果目标已经存在,则重写该目标。
-l: 允许DataNode将文件延迟保存到磁盘,强制复制因子为1。此标志将导致耐久性降低。小心使用。
-d: 跳过创建后缀为. _copying_的临时文件。
举例:

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读取输入。

rm
用法: hadoop fs -rm [-f] [-r |-R] [-skipTrash] [-safely] URI [URI ...]
删除指定为args的文件。
如果启用了垃圾,文件系统将把删除的文件移动到一个垃圾目录。
当前,默认情况下禁用garbage特性。用户可以通过为参数fs. garbage .interval(在core-site.xml中)设置一个大于零的值来启用garbage。
选项:
如果文件不存在,-f选项将不显示诊断消息或修改退出状态以反映错误。
-R选项递归地删除目录及其下的任何内容。
-r选项等价于-R。
-skiptrash选项将绕过垃圾箱(如果启用),并立即删除指定的文件。当需要从配额过多的目录中删除文件时,这一点非常有用。
-safely选项需要在删除文件总数大于hadoop.shell.delete.limit.num.files(在core-site中)的目录之前进行安全确认。xml,默认值:100)。它可以与-skipTrash一起使用,以防止意外删除大型目录。在确认之前递归遍历大目录以计算要删除的文件数量时,预期会出现延迟。
举例:

hadoop fs -rm hdfs://nn.example.com/file /user/hadoop/emptydir

rmdir
用法: hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]
删除一个目录。
选项:
–ignore-fail-on-non-empty: 在使用通配符时,如果目录仍然包含文件,则不要失败。
举例:

hadoop fs -rmdir /user/hadoop/emptydir

stat
用法: hadoop fs -stat [format] <path> ...
以指定的格式在 处打印关于文件/目录的统计信息。格式接受块(%b)、类型(%F)、所有者的组名(%g)、名称(%n)、块大小(%o)、复制(%r)、所有者的用户名(%u)和修改日期(%y, %y)中的文件大小。%y显示UTC日期为yyyy-MM-dd HH:mm:ss, %y显示自1970年1月1日UTC以来的毫秒数。如果未指定格式,默认情况下使用%y。
举例:

hadoop fs -stat "%F %u:%g %b %y %n" /file

tail
用法: hadoop fs -tail [-f] URI
将文件的最后千字节显示到标准输出。
选项:

-f选项将在文件增长时输出附加的数据,就像在Unix中一样。

举例:

hadoop fs -tail pathname

text
用法: 在这里插入代码片
获取源文件并以文本格式输出该文件。允许的格式是zip和TextRecordInputStream。

touchz
用法: hadoop fs -touchz URI [URI ...]
创建一个零长度的文件。如果文件存在非零长度,则返回错误。
举例:

hadoop fs -touchz pathname

truncate
用法: hadoop fs -truncate [-w] <length> <paths>
将所有匹配指定文件模式的文件截断到指定长度。
选项:
-w标志请求命令在必要时等待块恢复完成。如果没有-w标志,在恢复过程中文件可能会保持一段时间的未关闭状态。在此期间,无法重新打开文件进行追加。
举例:

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

usage
用法: hadoop fs -usage command
返回单个命令的帮助。

点击这里查看HDFS命令

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值