HDFS命令大全

HDFS命令大全

HDFS常用的命令

注:hadoop fs与hdfs dfs等同。
appendToFile
用法: hadoop fs -appendToFile <localsrc> ... <dst>添加单个src,或则多个srcs从本地文件系统到目标文件系统。从标准输入读取并追加到目标文件系统。
  * hadoop fs -appendToFile localfile /user/hadoop/hadoopfile
  * hadoop fs -appendToFile localfile1 localfile2 /user/hadoop/hadoopfile
  * hadoop fs -appendToFile yarn--resourcemanager-hadoop0.log hdfs://hadoop0:9000/input/test
  * hadoop fs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.
返回代码:  
返回 0成功返回 1 错误
cat
用法: hadoop fs -cat URI [URI ...]  
将路径指定文件的内容输出到stdout  
例子:
  * hadoop fs -cat hdfs://hadoop0:9000/input/test hdfs://hadoop0:9000/input/yarn
  * hadoop fs -cat file:///input/test /input/yarn

返回代码:  
返回 0成功返回 1 错误
checksum
用法: hadoop fs -checksum URI  
返回 checksum 文件信息  
例子:  
  * hadoop fs -checksum hdfs://nn1.example.com/file1
  * hadoop fs -checksum file:///etc/hosts
chgrp
用法: hadoop fs -chgrp [-R] GROUP URI [URI ...]  
改变文件所属组. 必须是文件所有者或则超级用户. 更多信息在 Permissions Guide.  
选项  
  * 使用-R 将使改变在目录结构下递归进行
chmod
用法: hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]  
更改文件的权限. 使用-R 将使改变在目录结构下递归进行。 必须是文件所有者或则超级用户. 更多信息在 Permissions Guide.  
选项  
  * 使用-R 将使改变在目录结构下递归进行。
chown
用法: hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]  
更改文件的所有者. 使用-R 将使改变在目录结构下递归进行。 必须是文件所有者或则超级用户. 更多信息在 [Permissions Guide.](http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html)  
选项  
  * 使用-R 将使改变在目录结构下递归进行。
copyFromLocal
用法: hadoop fs -copyFromLocal <localsrc> URI  
类似put命令, 需要指出的是这个限制是本地文件  
选项:  
  * -f 选项会重写已存在的目标文件
copyToLocal
用法: hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>  
与get命令类似, 除了限定目标路径是一个本地文件外。 
count
用法: hadoop fs -count [-q] [-h][-v] <paths>统计目录个数,文件和目录下文件的大小。输出列:DIR_COUNT, FILE_COUNT, CONTENT_SIZE, PATHNAME  
【目录个数,文件个数,总大小,路径名称】  
输出列带有 -count -q 是: QUOTA, REMAINING_QUATA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, PATHNAME  
【配置,其余指标,空间配额,剩余空间定额,目录个数,文件个数,总大小,路径名称】  
The -h 选项,size可读模式.   
The -v选项显示标题行。
Example:  
  * hadoop fs -count hdfs://hadoop0:9000/input/ hdfs://hadoop0:9000/input/test
  * hadoop fs -count -q hdfs://hadoop0:9000/input/test
  * hadoop fs -count -q -h hdfs://hadoop0:9000/input/test
  * hdfs dfs -count -q -h -v hdfs://hadoop0:9000/input/test
返回代码:  
返回 0成功返回 1 错误
cp
用法: hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>复制文件,这个命令允许复制多个文件到一个目录。  
'raw.*' 命名空间扩展属性被保留  
(1)源文件和目标文件支持他们(仅hdfs)  
(2)所有的源文件和目标文件路径在 /.reserved/raw目录结构下。  
决定是否使用 raw.*命名空间扩展属性依赖于-P选项  
选项:  
  * -f 选项如果文件已经存在将会被重写.
  * -p 选项保存文件属性 [topx] (timestamps, ownership, permission, ACL, XAttr). 如果指定 -p没有参数, 保存timestamps, ownership, permission. 如果指定 -pa, 保留权限 因为ACL是一个权限的超级组。确定是否保存raw命名空间属性取决于是否使用-p决定

例子:  
  *  hadoop fs -cp /input/test /input/test1
  *  hadoop fs -cp /input/test   /input/yarn     /output  

返回代码:  
返回 0成功返回 1 错误  
createSnapshot

查看 HDFS Snapshots Guide.

deleteSnapshot

查看 HDFS Snapshots Guide.

df【查看还剩多少hdfs空间】
用法: hadoop fs -df [-h] URI [URI ...]  
显示剩余空间  
选项:  
  * -h 选项会让人更加易读 (比如 64.0m代替 67108864)

Example:  
  * hadoop dfs -df /input      
du
用法: hadoop fs -du [-s] [-h] URI [URI ...]显示给定目录的文件大小及包含的目录,如果只有文件只显示文件的大小  
选项:  
  * -s 选项汇总文件的长度,而不是现实单个文件.
  * -h 选项显示格式更加易读 (例如 64.0m代替67108864)

例子:  
  * hadoop fs -du /input /input/test hdfs://hadoop0:9000/input/test

返回代码:  
返回 0成功返回 1 错误
dus
用法: hadoop fs -dus <args>  
显示统计文件长度  
注意:这个命令已被启用, hadoop fs -du -s即可
expunge
用法: hadoop fs -expunge  
在垃圾邮件目录下永久删除保留阈值以前的检查点中的文件,并创建新的检查点。

检查点创建时,垃圾箱中最近删除的文件将在检查点下移动。在fs.trash.checkpoint.interval之前的检查点中的文件将在下一次调用-expunge命令时被永久删除。

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

有关HDF垃圾功能的更多信息,请参阅[HDFS架构指南](http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#File_Deletes_and_Undeletes)。
  
find
用法: hadoop fs -find <path> ... <expression> ...查找与指定表达式匹配的所有文件,并将选定的操作应用于它们。如果没有指定路径,则默认查找当前目录。如果没有指定表达式默认-print  
下面主要表达式:  
  -name 模式  
  -iname 模式

    如果文件的基本名称与使用标准文件系统globbing的模式匹配,则将其评估为true。如果使用-iname,则匹配不区分大小写。
 
  -print  
  -print0Always  
  
    评估值为TRUE. 当前路径被写至标准输出。如果使用 -print0 表达式, ASCII NULL 字符是追加的.

下面操作:  
     expression -a expression  
     expression -and expression  
     expression expression
     
     and运算符连接两个表达式,如果两个字表达式返回true,则返回true.由两个表达式的并置暗示,所以不需要明确指定。如果第一个失败,则不会应用第二个表达式。  
例子:  
  * hadoop fs -find / -name test -print  
返回代码:  
返回 0成功返回 1 错误
get
用法: hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
将文件复制到本地文件系统。可能使用-ignorecrc选项复制CRC校验失败的文件。文件和CRC可以使用-crc选项进行复制。

例子:  
  * hadoop fs -get /input/test /opt (localfile)
  * hadoop fs -get hdfs://hadoop0:9000/input/test /opt (localfile)

返回代码:  
返回 0成功返回 1 错误
getfacl
用法: hadoop fs -getfacl [-R] <path>  
显示访问控制列表(ACL)的文件和目录. 如果一个目录有默认的ACL, getfacl 也显示默认的ACL.  
选项:
  * -R: 递归目录和列出所有文件的ACLs.
  * path: 文件或目录列表。

例子:
  * hadoop fs -getfacl /input/test
  * hadoop fs -getfacl -R /input

返回代码:  
返回 0成功返回 非0 错误
getfattr
用法: hadoop fs -getfattr [-R] -n name | -d [-e en] <path>  
显示文件和目录扩展属性名字和值[如果有的话]  
选项:
  * -R: 递归显示文件和目录属性.
  * -n  name: 转储指定的扩展属性值.
  * -d: 转储与路径名关联的所有扩展属性值.
  * -e encoding: 检索后的值进行编码。 有效的编码是 "text", "hex", and "base64". 值编码作为文本字符串是用双引号括起来的("),

值编码作为16进制和64进制,前缀分别为 0x 和 0s
  * path: 文件或则目录

例子:
  * hadoop fs -getfattr -d /input
  * hadoop fs -getfattr -R -n user.myAttr /input

返回代码:  

返回 0成功返回 非0 错误  
getmerge
用法: hadoop fs -getmerge <src> <localdst> [addnl]  
源目录和目标文件作为输入和连接文件合并到本地目标文件。addnl选项可以设置在文件末尾添加一个换行符。  
例子:
  * hadoop fs -getmerge -nl /src /opt/output.txt
  * hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt

返回代码:

返回 0成功返回 非0 错误  
ls
用法:hadoop fs -ls [-d] [-h] [-R] <args>

选项:
  * -d:目录列为纯文件。
  * -h:以人类可读的方式格式化文件大小(例如,64.0m而不是67108864)。
  * -R:递归列出遇到的子目录。

对于文件,ls以文件形式返回stat,格式如下:

    权限number_of_replicas userid groupid filesize modify_date modify_time filename

对于一个目录,它会返回其直接子项的列表,就像Unix一样。目录列为:

    权限userid groupid modify_date modify_time dirname

对于一个目录,它会返回其直接子项的列表,就像Unix一样。目录列为:

权限userid groupid modify_date modify_time dirname

默认情况下,目录中的文件按文件名顺序排列。

例子:
  * hadoop fs -ls /input 

返回代码:

成功返回0,错误返回-1。
lsr
用法: hadoop fs -lsr <args>  
ls递归  
注意: 这个命令被启用的,替换为hadoop fs -ls -R  
mkdir
用法: hadoop fs -mkdir [-p] <paths>  
以URI的路径作为参数并创建目录。  
选项:  
  * -p 选项与Linux -p功能一样,会创建父目录

例子:  
  * hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
  * hadoop fs -mkdir hdfs://hadoop0:9000/input/test hdfs://hadoop0:9000/input/test1

返回代码:  

返回0成功,-1错误  
moveFromLocal
用法: hadoop fs -moveFromLocal <localsrc> <dst>  
类似put命令,但是它是本地源文件复制后被删除 
moveToLocal
用法: hadoop fs -moveToLocal [-crc] <src> <dst>  
显示 "Not implemented yet" 消息  
mv
用法: hadoop fs -mv URI [URI ...] <dest>移动文件,这个命令允许移动多个文件到某个目录  
例子:  
  * hadoop fs -mv /user/hadoop/file1 /user/hadoop/file1
  * hadoop fs -mv hdfs://hadoop0:9000/input/test hdfs://hadoop0:9000/outputs/test1

返回代码:  

返回0成功,-1错误  
put
用法: hadoop fs -put <localsrc> ... <dst>  
复制单个或则多个源文件到目标系统文件。从stdin读取输入并写入到目标文件系统。  
  * hadoop fs -put localfile /user/hadoop/hadoopfile
  * hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
  * hadoop fs -put localfile hdfs://hadoop0:9000/input/hadoopfile
  * hadoop fs -put - hdfs://hadoop0:9000/input/hadoopfile 从stdin读取输入。

返回代码: 
 
返回0成功,-1错误  
renameSnapshot

查看 HDFS Snapshots Guide.

rm
用法: hadoop fs -rm [-f] [-r |-R] [-skipTrash] URI [URI ...]  
删除指定的参数文件。  
选项:  
  * -f 选项 如果该文件不存在,则该选项将不显示诊断信息或修改退出状态以反映错误。
  * -R选项递归删除目录下任何内容
  * -r与-R效果一样
  * -skipTrash选项绕过垃圾回收器,如果启用,将会立即删除指定文件。这是非常有用对于超过配额的目录

例子:  
  * hadoop fs -rm hdfs://hadoop0:9000/input/hadoopfile /user/hadoop/emptydir

返回代码:  

返回0成功,-1错误  
rmdir
用法: hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]  
删除目录  
选项:  
  * --ignore-fail-on-non-empty: 当使用通配符,一个目录还包含文件,不会失败.

例子:  
  * hadoop fs -rmdir /user/hadoop/emptydir
rmr
用法: hadoop fs -rmr [-skipTrash] URI [URI ...]  
递归删除  
说明:这个命令被弃用了,而是使用hadoop fs -rm -r  
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_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

返回代码: 
 
返回0成功,非0错误
setfattr
用法: hadoop fs -setfattr -n name [-v value] | -x name <path>  
设置一个文件或目录的扩展属性名和值。  
选项:  
  * -b: 移除所有的条目除了基本的ACL条目。用户、组和其他的条目被保留为与权限位的兼容性。  
  * -n name:扩展属性名。  
  * -v value:扩展属性值。有三种不同编码值,如果该参数是用双引号括起来的,则该值是引号内的字符串。如果参数是前缀0x或0X,然后作为一个十六进制数。如果参数从0或0,然后作为一个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

返回代码:
  
返回0成功,非0错误  
setrep
用法: hadoop fs -setrep [-R] [-w] <numReplicas> <path>  
更改文件的备份. 如果是一个目录,会递归改变目录下文件的备份。  
选项:  
  * -w标识,要求备份完成,这可能需要很长时间。  
  * -R标识,是为了兼容,没有实际效果  
例子:  
  * hadoop fs -setrep -w 3 /user/hadoop/dir1

返回代码:
  
返回0成功,非0错误  
stat
用法: hadoop fs -stat [format] <path> ...按指定格式打印文件/目录的打印统计。  
格式接受文件块 (%b), 类型 (%F), groutp拥有者 (%g), 名字 (%n), block size (%o), replication (%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

返回代码:  
返回0成功 -1错误  
tail
用法: hadoop fs -tail [-f] URI  
显示文件内容,最后千字节的文件发送到stdout,  
选项:  
  * - f选项将输出附加数据随着文件的增长,如同Unix  
例子:  
  * hadoop fs -tail pathname

返回代码:  
返回0成功 -1错误  
test
用法: hadoop fs -test -[defsz] URI  
选项:  
  * -d:如果路径是一个目录,返回0  
  * -e:如果路径已经存在,返回0  
  * -f: 如果路径是一个文件,返回0  
  * -s:如果路径不是空,返回0  
  * -z:如果文件长度为0,返回0  
例子:  
  * hadoop fs -test -e filename
text
用法: hadoop fs -text <src>  
一个源文件,以文本格式输出文件。允许的格式是zip和textrecordinputstream。  
touchz
用法: hadoop fs -touchz URI [URI ...]  
创建一个零长度的文件。  
例子:  
  * hadoop fs -touchz pathname

返回代码:返回0成功,-1错误
truncate
用法: hadoop fs -truncate [-w] <length> <paths>  
截断指定文件模式指定的长度匹配的所有文件。  
选项:  
  *-w 选项需要等待命令完成块恢复。如果没有-w选项,在恢复的过程中可能是未闭合的  
例子:  
  * hadoop fs -truncate 55 /input/dir1/file1 /input/dir1/file2
  * hadoop fs -truncate -w 127 hdfs://hadoop0:9000/input/dir2/file1
usage
用法: hadoop fs -usage command  
返回单个命令的帮助。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值