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

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]
功能描述:
更改指定对象的权限设置
选项描述:
-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 [
功能描述:
统计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
执行语句:
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关键字文件并输出

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

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

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
执行语句:
hadoop fs -setfacl [-R] [{-b|-k} {-m|-x
功能描述:
设置指定对象的ACL(访问控制列表)
选项描述:
-b:剔除基本ACL(u/g/o用户的权限)外的ACL
-k:剔除default ACL
-m:添加新的ACL条目
-x:删除指定的ACL条目
--set:添加新的ACL条目并覆盖原有的ACL条目(包含基本ACL覆盖)
-R:迭代指定对象内的所有对象
acl_spec:ACL条目,填写规范为
样例演示:
为/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


剔除上述添加的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
执行语句:
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
