hadoop fs shell包含与HDFS或Hadoop支持的其他文件系统(如本地文件系统,HFTP,S3)的交互操作。
hadoop fs shell通过上一节的fs命令行进行调用:
bin/hadoop fs <args>
所有的fs shell命令都需要使用URIs作为参数。URI的格式为scheme://authority/path。对于hdfs来说scheme是hdfs,对于本地文件系统来说scheme是file。scheme和authority是可选的。若不指定,则使用配置中的默认项。
1、appendToFile
将本地文件或标准输入(stdin)追加到目标文件系统
2、cat
用法和linux一致,将源输出到标准输出
3、checksum
返回文件的checksum信息(我试过几个文件返回的结果都是NONE)
4、chgrp
改变文件所属的group,操作者需要是文件的拥有者或者超级用户
5、chmod
用于授权
6、chown
改变文件的拥有者,操作者需要是超级用户
7、copyFromLocal
类似于put命令,源文件必须是本地的
8、copyToLocal
类似于get命令,目标必须是本地的
9、count
输出指定路径的目录数(DIR_COUNT),文件数(FILE_COUNT),内容大小(CONTENT_SIZE)和路径名(PATHNAME)
可以使用附加参数以输出更多信息
10、cp
用于复制
11、createSnapshot
用于创建快照
12、deleteSnapshot
用于删除快照
13、df
展示剩余空间
14、du
展示文件和目录的大小
15、dus
展示文件的总大小,这个命令行已被弃用。可用hadoop fs -du -s取代。
16、expunge
从垃圾目录(trash dir)的检查点中永久删除时间久于阈值(由core-site.xml中的fs.trash.checkpoint.interval指定,这个值需要小于fs.trash.interval)的文件,并创建新的检查点。
17、find
查找文件并对他们执行某操作
18、get
将文件复制到本地文件系统。未通过CRC检查的文件将会自带-ignorecrc参数,其他将会自带-crc参数。
19、getfacl
展示所有文件和目录的访问控制列表。
20、getfattr
展示文件或目录的extended attribute name and value(不明白这是什么)
21、getmerge
将源目录的文件融合到一个目标文件中
22、help
返回使用方法
23、ls
同linux类似,展示目录或文件的某些信息
24、lsr
是ls的迭代目录版本
25、mkdir
创建目录
26、moveFromLocal
和put类似,但是源文件会被删除
27、moveToLocal
尚未实现(这都被列出来了,真无语)
28、mv
移动文件
29、put
将文件从本地提交到目标文件系统,也可以从stdin写入到目标文件系统
30、renameSnapshot
重命名快照
31、rm
删除特定文件
如果trash功能被开启,删除操作会将文件移动到trash目录。用户可以在core-site.xml中给fs.trash.interval设置一个大于0的值开开启trash功能
32、rmdir
删除特定目录
33、rmr
删除的迭代目录版本
34、setfacl
设置文件或目录的访问控制列表
35、setfattr
设置extended attribute name and value(还是不明白这是什么)
36、setrep
修改文件的复制因子。
37、stat
用自定义的格式打印文件或目录的一些信息,包括文件大小、类型、所属group、文件名、block大小、复制因子、拥有者和修改时间
38、tail
显示文件最后的1000byte
39、test
测试路径是否是有效的文件或目录
40、text
将输入文件以文本格式输出,允许的格式包括zip和TextRecordInputStream
41、touchz
创建一个长度为0的文件
42、truncate
将所有匹配的文件截断到指定的长度
43、返回某个特定命令的使用方法