Hadoop 编程实战:HDFS 用户 Shell 详解
HDFS Shell主要分为两部分,分别为用户Shell及管理员Shell,对应的关键字分别是dfs与dfsadmin。本文将介绍用户Shell 39个指令的功能描述,选项详解及样例演示。
用户Shell指令的执行语句有hadoop fs及hdfs dfs两种格式,本文将使用hadoop fs格式的执行语句进行演示。
HDFS用户Shell列表
Usage: hadoop fs [generic options] [-appendToFile ... ] [-cat [-ignoreCrc] ...] [-checksum ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] [-d] [-t ] ... ] [-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] ... ] [-count [-q] [-h] [-v] [-t []] [-u] [-x] [-e] ...] [-cp [-f] [-p | -p[topax]] [-d] ... ] [-createSnapshot []] [-deleteSnapshot ] [-df [-h] [ ...]] [-du [-s] [-h] [-v] [-x] ...] [-expunge] [-find ... ...] [-get [-f] [-p] [-ignoreCrc] [-crc] ... ] [-getfacl [-R] ] [-getfattr [-R] {-n name | -d} [-e en] ] [-getmerge [-nl] [-skip-empty-file] ] [-help [cmd ...]] [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [ ...]] [-mkdir [-p] ...] [-moveFromLocal ... ] [-moveToLocal ] [-mv ... ] [-put [-f] [-p] [-l] [-d] ... ] [-renameSnapshot ] [-rm [-f] [-r|-R] [-skipTrash] [-safely] ...] [-rmdir [--ignore-fail-on-non-empty] ...] [-setfacl [-R] [{-b|-k} {-m|-x } ]|[--set ]] [-setfattr {-n name [-v value] | -x name} ] [-setrep [-R] [-w] ...] [-stat [format] ...] [-tail [-f] ] [-test -[defsz] ] [-text [-ignoreCrc] ...] [-touch [-a] [-m] [-t TIMESTAMP ] [-c] ...] [-touchz ...] [-truncate [-w] ...] [-usage [cmd ...]]
1. appendToFile
-
执行语句:
Hadoop fs -appendToFile
-
功能描述:
把一个或多个本地文件的内容追加到HDFS文件的末端,或读取标准输入内容并追加到HDFS文件的末端。
-
选项描述:
-
样例演示:
-
创建本地文件test1.txt、test2.txt及HDFS文件/hdfstest/test.txt
-
把test1.txt内容追加到/hdfstest/test.txt
hadoop -appendToFile text1.txt /hdfstest/test.txt
-
把test1.txt和test2.txt内容追加到/hdfstest/test.txt
hadoop -appendToFile text1.txt test2.txt /hdfstest/test.txt
注意执行语句内本地文件的顺序会影响内容的写入顺序
-
读取标准输入内容并追加到/hdfstest/test.txt
hadoop -appendToFile – /hdfstest/test.txt
注意标准输入完成后必须按ctrl+c退出并保存
2. cat
-
执行语句:
hadoop fs -cat [-ignoreCrc]
-
功能描述:
显示一个或多个HDFS文件内容
-
选项描述:
-ignoreCrc :忽略数据校验和失败
-
样例演示:
-
输出/hdfstest/test.txt与/hdfstest/write_test.txt文件内容
hadoop fs -cat /hdfstest/test.txt /hdfstest/write_test.txt
注意多个文件内容输出时,无任何标识隔离文件间的内容
3. checksum
-
执行语句:
hadoop fs -checksum
-
功能描述:
返回HDFS文件的数据校验和CRC
-
选项描述:
-
样例演示:
-
输出/hdfstest/test.txt的数据校验和
hadoop fs -checksum /hdfstest/test.txt
其中MD5-of-0MD5-of-512CRC32C属于HDFS文件的数据校验和算法。
4. chgrp
-
执行语句:
hadoop fs -chgrp [-R] GROUP PATH
-
功能描述:
更改指定HDFS对象所属用户组
-
选项描述:
-R :迭代指定对象内的所有的对象
-
样例演示:
-
把/hdfstest/test.txt的用户组从supergroup修改为luorl
hadoop fs -chgrp luorl /hdfstest/test.txt
修改前
修改后
5. chmod
-
执行语句:
hadoop fs -chmod [-R] PATH
-
功能描述:
更改指定对象的权限设置
-
选项描述:
-R :迭代指定对象内的所有的对象
MODE :格式为“用户+操作+权限”
角色有3种,分别为:
u:文件拥有者
g:与文件拥有者同属的用户组
o:除了u/g以外的其他人
操作有3种,分别为:
+:增加权限
-:删除权限
=:取消权限
权限有3种,分别为:
r:读取权限
w:写入权限
x:执行权限
比如u+rwx,代表u用户增加读取、写入、执行权限;o-x,除了u/g以外的其他用户删除执行权限;ug+r,u/g用户增加读取权限
OCTALMODE :使用3个八进制数配置ugo权限,每个八进制数代表一个对象的rwx设置
-
样例演示:
-
对/hdfstest/test.txt的u用户添加读取、写入、执行权限,对g用户添加读取、写入权限,对o用户添加读取权限
hadoop fs -chmod u+rwx,g+rw,o+r /hdfstest/test.txt
hadoop fs -chmod 764 /hdfstest/test.txt
6. chown
-
执行语句:
hadoop fs -chown [-R] [OWNER][:[GROUP]] PATH
-
功能描述:
更改指定对象的所属用户
-
选项描述:
-R :迭代指定对象内的所有的对象
-
样例演示:
-
更改/hdfstest/test.txt的用户为root:supergroup
hadoop fs -chown root:supergroup /hdfstest/test.txt
7. copyFromLocal
-
执行语句:
hadoop fs -copyFromLocal [-f] [-p] [-l] [-d] [-t ]
-
功能描述:
拷贝本地文件到HDFS指定对象
-
选项描述:
-f :若对象已存在,则覆盖
-p :保留源文件的创建时间、修改时间、所属用户及用户组
-l :允许datanode延迟保存文件副本到磁盘,让副本数保持为1
-d :跳过创建._COPYING_的临时文件
-t :开启多线程上传
-
样例演示:
-
拷贝本地文件test.txt覆盖/hdfstest/test.txt
hadoop fs -copyFromLocal -f test.txt /hdfstest/test.txt
-
拷贝本地文件test1.txt到/hdfstest/,并保留源文件信息
hadoop fs -copyFromLocal -p test1.txt /hdfstest/
-
开启4线程拷贝本地文件test2.txt到/hdfstest/
hadoop fs -copyFromLocal -t 4 test2.txt /hdfstest/
8. copyToLocal
-
执行语句:
hadoop fs -copyToLocal [-f] [-p] [-ignoreCrc] [-crc]
-
功能描述:
拷贝HDFS指定对象到本地
-
选项描述:
-f :若对象已存在,则覆盖
-p :保留源文件的创建时间、修改时间、所属用户及用户组
-ignoreCrc :忽略数据校验和失败
-crc :下载对象及对应的crc(数据校验和)文件
-
样例演示:
-
拷贝/hdfstest/test.txt覆盖本地文件test.txt
hadoop fs -copyToLocal -f /hdfstest/test.txt test.txt
-
拷贝/hdfstest/in_test.txt并保留源文件信息
hadoop fs -copyToLocal -p /hdfstest/in_test.txt /root
9. count
-
执行语句:
hadoop fs -count [-q] [-h] [-v] [-t []] [-u] [-x] [-e]
-
功能描述:
统计HDFS指定路径的可容纳文件/文件夹配额、空间配额、目录数、文件数及占用空间
-
选项描述:
-q :输出以下统计列:
QUOTA(指定路径可建文件/文件夹数量配额)、
REM_QUOTA(指定路径可建文件/文件夹数量剩余配额)、
SPACE_QUOTA(指定路径可建文件/文件夹空间配额)、
REM_SPACE_QUOTA(指定路径可建文件/文件夹空间剩余配额)、
DIR_COUNT(指定路径下文件夹(包括自身)统计数)、
FILE_COUNT(指定路径下文件统计数)、
CONTENT_SIZE(指定路径下文件及文件夹大小总和)、
PATHNAME(指定路径)
-u :输出以下统计列:
QUOTA(指定路径可建文件/文件夹数量配额)、
REM_QUOTA(指定路径可建文件/文件夹数量剩余配额)、
SPACE_QUOTA(指定路径可建文件/文件夹空间配额)、
REM_SPACE_QUOTA(指定路径可建文件/文件夹空间剩余配额)、
PATHNAME(指定路径)
-h :把数据单位显示为容易理解的单位,比如原来空间为byte单位展示数据,加入该参数后转换为k,m,g等单位
-v :显示统计项标题行
-t :显示每种存储类型的空间配额和使用情况。如果未给出-u或-q选项,则-t选项将被忽略。可选参数storage type支持的输入类型有:“ all”,“ ram_disk”,“ ssd”,“ disk”或“ archive”。
-x :统计结果排除快照。如果指定了-u或-q选项,则-x选项将被忽略
-e :显示指定路径的EC编码模式,通过列ERASURECODING_POLICY显示
-
样例演示:
-
显示根目录的统计信息,并显示标题行
hadoop fs -count -q -v /
hadoop fs -count -u -v /
-
显示/hdfstest目录的统计信息,并显示标题行及合适单位
hadoop fs -count -q -v -h /
-
显示/hdfstest目录各种存储类型的配额信息
hadoop fs -count -q -t -v -h /
查询SSD的配额信息
hadoop fs -count -q -t ssd -v -h /
查询REM内存的配额信息
10. cp
-
执行语句:
hadoop fs -cp [-f] [-p | -p[topax]] [-d]
-
功能描述:
HDFS指定对象拷贝到HDFS的另一个路径
-
选项描述:
-f :若对象已存在,则覆盖
-p :保留源文件的时间戳(timestamp)、所属用户及用户组(ownership)、权限(premission)。若增加topax参数,则在原来基础上增加保留ACL(访问控制列表)、XAttr(扩展属性)
-d :跳过创建._COPYING_的临时文件
-
样例演示:
-
拷贝/hdfstest/test.txt到/hdfstest2/路径
hadoop fs -cp /hdfstest/test.txt /hdfstest2
-
拷贝/hdfstest/test1.txt到/hdfstest2/路径,并保留源文件所有信息
hadoop fs -cp -ptopax /hdfstest/test1.txt /hdfstest2
11. createSnapshot
快照是HDFS运维最重要的指令之一,具体可访问【 HDFS杂谈:SnapShot快照 】
-
执行语句:
hadoop fs -createSnapshot []
-
功能描述:
创建HDFS指定路径的快照
-
选项描述:
snapshotDir :允许创建快照的目录,快照创建成功后将存储在snapshotDir/. snapshot
snapshotName :指定快照名称,默认名称为S+创建时间戳
-
样例演示:
-
设置/hdfstest允许设置快照
hdfs dfsadmin -allowSnapshot /hdfstest
-
创建/hdfstest的快照
不指定快照名称下创建快照
hadoop fs -createSnapshot /hdfstest
指定快照名称下创建快照
hadoop fs -createSnapshot /hdfstest s1
查看所有快照
hadoop fs -ls -R /hdfstest/.snapshot
12. deleteSnapshot
-
执行语句:
hadoop fs -deleteSnapshot
-
功能描述:
删除HDFS指定路径内指定名称的快照
-
选项描述:
-
样例演示:
-
删除/hdfstest的快照s1
hadoop fs -deleteSnapshot /hdfstest s1
13. renameSnapshot
-
执行语句:
hadoop fs -renameSnapshot
-
功能描述:
重命名HDFS指定路径的快照为新的名称
-
选项描述:
-
样例演示:
-
重命名/hdfstest的快照s1为快照s_init
hadoop fs -renameSnapshot /hdfstest s1 s_init
14. df
-
执行语句:
hadoop fs -df [-h]
-
功能描述:
查看指定路径对应的HDFS系统的存储情况
-
选项描述:
-h :把数据单位显示为容易理解的单位
-
样例演示:
-
查询/hdfstest与/hdfstest2所在的hdfs系统空间
hadoop fs -df -h /hdfstest /hdfstest2
因为/hdfstest与/hdfstest2位于同一个HDFS环境,故空间信息一致
15. du
-
执行语句:
hadoop fs -du [-s] [-h] [-v] [-x]
-
功能描述:
查看指定对象的存储情况
-
选项描述:
-s :显示指定路径下所有文件夹空间汇总结果。若不填该选项,则显示指定路径下所有文件/文件夹空间
-h :把数据单位显示为容易理解的单位
-v :显示标题行
-x :统计结果不包括快照
-
样例演示:
-
显示/hdfstest/路径下所有对象的空间
hadoop fs -du -v /hdfstest/
hadoop fs -du -v -h /hdfstest/
-
显示/hdfstest/路径汇总空间
hadoop fs -du -v -s -h /hdfstest/
16. expunge
-
执行语句:
hadoop fs –expunge
-
功能描述:
清空回收站
-
选项描述:
-
样例演示:
-
清空当前回收站
hadoop fs -expunge
17. find
-
执行语句:
hadoop fs -find
-
功能描述:
按表达式搜索指定路径下的对象
-
选项描述:
expression 搜索表达式:
-name :根据文件名称精准搜索,区分英文大小写
-iname :在-name基础上增加不区分英文大小写
-print :输出搜索文件的详细路径
-print0 :与-print一致,但末尾不带换行符
expression之间可以用-a、-and或者空格连接 ,比如
expression -a expression
expression -and expression
expression expression
-
样例演示:
-
查找/hdfstest/目录下的test.txt文件并输出
hadoop fs -find /hdfstest -iname test.txt -print
-
模糊查找/hdfstest/目录下的test关键字文件并输出
当使用通配符*按关键字搜索时,HDFS提示Unexpected argument出乎意料的参数,由此可知find指令无法对文件名模糊查询
18. get
-
执行语句:
hadoop fs -get [-f] [-p] [-ignoreCrc] [-crc]
-
功能描述:
拷贝HDFS指定对象到本地,与copyToLocal功能一致
-
选项描述:
-f :若对象已存在,则覆盖
-p :保留源文件的创建时间、修改时间、所属用户及用户组
-ignoreCrc :忽略数据校验和失败
-crc :下载指定对象及对应的crc(数据校验和)文件
-
样例演示:
-
拷贝/hdfstest/test.txt覆盖本地文件test.txt
hadoop fs -get -f /hdfstest/test.txt test.txt
19. getmerge
-
执行语句:
hadoop fs -getmerge [-nl] [-skip-empty-file]
-
功能描述:
把HDFS多个文件内容合并并拷贝到本地的一个文件中
-
选项描述:
-nl :各个文件内容间拼接增加换行符
-skip-empty-file :跳过空文件
-
样例演示:
-
把/hdfstest/test.txt与/hdfstest/test1.txt合并并拷贝到本地test3.txt
hadoop fs -getmerge /hdfstest/test.txt /hdfstest/test1.txt test3.txt
hadoop fs -getmerge -nl /hdfstest/test.txt /hdfstest/test1.txt test3.txt
由上述结果可知,getmerge指令默认覆盖同一名称文件的内容
20. ls
-
执行语句:
hadoop fs -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e]
-
功能描述:
显示指定目录内的所有对象,或指定对象的信息
-
选项描述:
-C :仅显示指定对象的名称
-d :仅显示指定目录的信息
-h :把数据单位显示为容易理解的单位
-q :使用?替换不可打印字符
-R :递归指定对象内的所有对象
-t :按修改时间排序
-S :按文件大小排序
-r :反转排序顺序,需配合排序选项一起使用
-u :按最近访问时间排序
-e :仅显示指定对象的EC编码
-
样例演示:
-
仅显示/hdfstest/下的所有对象的名称
hadoop fs -ls -C /hdfstest
-
按修改时间倒序显示/hdfstest下的所有对象
hadoop fs -ls -t -r /hdfstest
-
按最近访问时间显示/hdfstest下的所有对象
hadoop fs -ls -u -h /hdfstest
注意显示的时间戳从原来的最后修改时间变更为最后访问时间
-
查找根目录下关键字为spark的文件夹/文件
hadoop fs -ls -R -h /|grep spark
使用ls指令并搭配linux grep指令,可实现指定路径下的模糊查询
21. mkdir
-
执行语句:
hadoop fs -mkdir [-p]
-
功能描述:
创建目录
-
选项描述:
-p :即使文件夹存在也不会报错
-
样例演示:
-
在根目录下创建hdfstest文件夹
hadoop fs -mkdir -p /hdfstest
22. moveFromLocal
-
执行语句:
hadoop fs -moveFromLocal
-
功能描述:
移动本地文件到HDFS指定对象
-
选项描述:
-
样例演示:
-
把本地文件mv_test.txt移动到/hdfstest下
hadoop fs -moveFromLocal mv_test.txt /hdfstest
23. moveToLocal
-
执行语句:
hadoop fs -moveToLocal
-
功能描述:
移动HDFS指定对象到本地(尚未实现)
24. mv
-
执行语句:
hadoop fs -mv
-
功能描述:
在HDFS内部移动指定对象
-
选项描述:
-
样例演示:
-
把/hdfstest/mv_test.txt移到/hdfstest2
hadoop fs -mv /hdfstest/mv_test.txt /hdfstest2
25. put
-
执行语句:
hadoop fs -put [-f] [-p] [-l] [-d]
-
功能描述:
将本地对象上传到HDFS,与copyFromLocal功能一致
-
选项描述:
-f :若对象已存在,则覆盖
-p :保留源文件的创建时间、修改时间、所属用户及用户组
-l :允许datanode延迟保存文件副本到磁盘,让副本数保持为1
-d :跳过创建._COPYING_的临时文件
-
样例演示:
-
拷贝本地文件test.txt到/hdfstest,并覆盖原文件
hadoop fs -put -f test.txt /hdfstest/test.txt
26. rm
-
执行语句:
hadoop fs -rm [-f] [-r|-R] [-skipTrash] [-safely]
-
功能描述
删除指定对象
-
选项描述:
-f :若对象不存在时,会跳过该对象,不会报错退出
-r|-R :迭代指定对象内的所有对象
-skipTrash :跳过回收站
-safely :使用该选项时,当删除对象内的文件总数大于hadoop.shell.delete.limit.num.files时,将提示安全确认。可以与-skipTrash一起使用,以防止意外迭代删除大目录
-
样例演示:
-
删除/hdfstest/rm_test.txt
hadoop fs -rm -f /hdfstet/rm_test.txt
-
删除/hdfstest2目录及目录内所有对象
hadoop fs -rm -R -skipTrash -safely /hdfstest2
27. rmdir
-
执行语句:
hadoop fs -rmdir [–ignore-fail-on-non-empty]
-
功能描述:
删除空目录
-
选项描述:
–ignore-fail-on-non-empty :若目录不为空,也不会报错退出
-
样例演示:
-
删除/hdfstest2
hadoop fs -rmdir /hdfstest2
hadoop fs -rmdir –ignore-fail-on-non-empty /hdfstest2
-
删除/hdfstest2/rm_dir
hadoop fs -rmdir /hdfstest2/rm_dir
28. setfacl
有关ACL访问控制列表的具体内容,可访问《 HDFS杂谈:ACL访问控制列表 》
-
执行语句:
hadoop fs -setfacl [-R] [{-b|-k} {-m|-x } ]|[–set ]
-
功能描述:
设置指定对象的ACL(访问控制列表)
-
选项描述:
-b :剔除基本ACL(u/g/o用户的权限)外的ACL
-k :剔除default ACL
-m :添加新的ACL条目
-x :删除指定的ACL条目
–set :添加新的ACL条目并覆盖原有的ACL条目(包含基本ACL覆盖)
-R :迭代指定对象内的所有对象
acl_spec :ACL条目,填写规范为::,比如user:luorl:rw-,为luorl用户添加读写权限;group::rwx,为基本组别用户权限调整为读写执行。
-
样例演示:
-
为/hdfstest/test.txt添加luorl用户读写权限
hadoop fs -setfacl -m user:luorl:rw- /hdfstest/test.txt
-
剔除上述添加的luorl用户权限
hadoop fs -setfacl -b /hdfstest/test.txt
-
为/hdfstest/添加luorl用户读写权限,并设置为defalut ACL
hadoop fs -setfacl -m default:user:luorl:rw- /hdfstest
设置好目录的defalut ACL后,后续在该目录下创建的对象会继承default ACL
-
剔除上述添加的luorl用户的defalut ACL
hadoop fs -setfacl -k /hdfstest
-
为/hdfstest/test.txt设置user::rwx,user:luorl:rw,group::rw-,other::r—权限,并覆盖原有权限
重新设置/hdfstest/test.txt文件的权限
hadoop fs -setfacl –set user::rwx,user:luorl:rw-,group::rw-,other::r– /hdfstest/test.txt
对比修改前后的权限设置,可见文件的ACL(包含基本ACL)已被完全覆盖
29. getfacl
-
执行语句:
hadoop fs -getfacl [-R]
-
功能描述:
查询指定对象的ACL(访问控制列表)
-
选项描述:
-R :迭代指定对象内的所有对象
-
样例演示:
-
查询/hdfstest的ACL
hadoop fs -getfacl /hdfstest
30. setfattr
有关Xattrs扩展属性的具体内容,可访问《 HDFS杂谈:Xattr扩展属性 》
-
执行语句:
hadoop fs -setfattr {-n name [-v value] | -x name}
-
功能描述:
设置指定对象的扩展属性
-
选项描述:
-n :设置扩展属性的名称
-v :设置扩展属性的值,必须搭配-n使用
-x :移除扩展属性
-
样例演示:
-
为/hdfstest/test.txt新增扩展属性user.MyAttr
hadoop fs -setfattr -n user.MyAttr /hdfstest/test.txt
-
为/hdfstest/test.txt扩展属性user.MyAttr设置值MyValue
hadoop fs -setfattr -n user.MyAttr -v MyValue /hdfstest/test.txt
-
为/hdfstest/test.txt移除扩展属性user.MyAttr
31. getfattr
-
执行语句:
hadoop fs -getfattr [-R] {-n name | -d} [-e en]
-
功能描述:
查询指定对象的扩展属性
-
选项描述:
-R :递归指定对象内的所有对象
-n :按指定的扩展属性名称展示
-d :显示所有扩展属性
-e :按指定编码展示扩展属性的值,必须搭配-n name或-d使用。编码类型分为text(文本)、hex(16进制)、base64(64位加密)。
-
样例演示:
-
展示/hdfstest/test.txt的user.MyAttr扩展属性
hadoop fs -getfattr -n user.MyAttr /hdfstest/test.txt
-
展示/hdfstest/test.txt所有扩展属性
hadoop fs -getfattr -d /hdfstest/test.txt
-
展示/hdfstest/test.txt的user.MyAttr扩展属性,并属性值进行64位加密
hadoop fs -getfattr -n user.MyAttr -e base64 /hdfstest/test.txt
32. setrep
-
执行语句:
hadoop fs -setrep [-R] [-w]
-
功能描述:
更改指定对象的复制副本数。若指定对象为目录,将迭代更改目录内所有对象的复制副本数。
-
选项描述:
-R :为了向后兼容而设计,暂时无效果
-w :等待所有DataNode的数据同步后才结束命令
rep :设置副本数
-
样例演示:
-
将/hdfstest/test.txt设置为2副本
hadoop fs -setrep -w 2 /hdfstest/test.txt
33. stat
-
执行语句:
hadoop fs -stat [format]
-
功能描述:
根据格式显示指定对象的信息
-
选项描述:
format类型:
type:
显示对象的类型。参数为%F
若对象属于文件,则显示为regular file
若对象属于目录,则显示为directory
permissions:
显示对象的权限配置。
%a显示为八进制权限,比如644
%A显示为ACL条目,比如rw-r–r–
bytes:
显示对象大小,单位为字节。参数为%b
user name of owner:
显示对象所属用户名称。参数为%u
group name of owner:
显示对象所属组别名称。参数为%g
name:
显示对象名称。参数为%n
block size:
显示对象所在的数据块大小,一般为HDFS设置的数据块大小。若对象为目录,则显示大小为0。参数为%o
replication:
显示对象的复制副本数。参数为%r
access date:
显示对象的创建时间。
参数为%x时,显示为”yyyy-MM-dd HH:mm:ss”
参数为%X时,显示为从“1970-1-1”到创建时间的秒数
modification date:
显示对象的修改时间。
参数为%y时,显示为”yyyy-MM-dd HH:mm:ss”
参数为%Y时,显示为从“1970-1-1”到修改时间的秒数
-
样例演示:
-
按格式显示/hdfstest/test.txt的类型、八进制权限、所属用户及组别、副本数、创建时间、修改时间
hadoop fs -stat “Type:%F Perm:%a %u:%g Rep:%r Acces_time:%x Modify_time:%y” /hdfstest/test.txt
34. tail
-
执行语句:
hadoop fs -tail [-f]
-
功能描述:
显示文件最后1kb的内容
-
选项描述:
-f :持续输出文件内容
-
样例演示:
-
输出/hdfstest/test.txt最后1kb的内容
hadoop fs -tail /hdfstest/test.txt
35. test
-
执行语句:
hadoop fs -test -[defswrz]
-
功能描述:
判断指定对象的类型
-
选项描述:
-d :判断对象是否目录,若是则返回0
-e :判断对象是否存在,若是则返回0
-f :判断对象是否文件,若是则返回0
-s :判断目录是否为空,若是则返回0
-w :判断文件存在且具备写入权限,若是则返回0
-r :判断文件存在且具备读取权限,若是则返回0
-z :判断文件是否为空文件,若是则返回0
-
样例演示:
-
判断/hdfstest/test.txt是否文件
hadoop fs -test -f /hdfstest/test.txt
-
判断/hdfstest/test.txt是否目录
hadoop fs -test -d /hdfstest/test.txt
36. text
-
执行语句:
hadoop fs -text [-ignoreCrc]
-
功能描述:
将HDFS中文件以文本形式输出(包括zip包,jar包等形式)
-
选项描述:
-ignoreCrc :忽略数据校验和失败
-
样例演示:
-
对/hdfstest/test.txt以文本格式显示
hadoop fs -text /hdfstest/test.txt
-
对/hdfstest/test.zip以文本格式显示
hadoop fs -text /hdfstest/test.zip
37. touch
-
执行语句:
hadoop fs -touch [-a] [-m] [-t TIMESTAMP ] [-c]
-
功能描述:
更新文件的创建时间或修改时间,若文件为空,则创建
-
选项描述:
-a :仅变更创建时间为当前时间
-m :仅变更修改时间为当前时间
-t :自定义时间(时间格式为yyyyMMddHHmmss))代替当前时间
-c :即使文件不存在也不创建文件
-
样例演示:
-
修改/hdfstest/text.txt的创建时间为当前时间
hadoop fs -touch -a /hdfstest/test.txt
38. touchz
-
执行语句:
hadoop fs -touchz
-
功能描述:
创建一个0长度的文件。文件创建后仅在NameNode上创建元数据信息,等到数据写入文件时才会在DataNode上创建block。
-
选项描述:
-
样例演示:
-
在/hdfstest/下创建touchz_test.txt文件
hadoop fs -touchz /hdfstest/touchz_test.txt
39. truncate
-
执行语句:
hadoop fs -truncate [-w]
-
功能描述:
将指定文件内容截断为指定长度并保存
-
选项描述:
-w :截断文件内容后必须等待所有的DataNode的数据同步后才结束命令
-
样例演示:
-
截断/hdfstest/test.txt文件只有10长度的内容
hadoop fs -truncate -w 10 /hdfstest/test.txt