参考自:http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/FileSystemShell.html#appendToFile
hadoop 版本号:2.7.1
本文是根据官网提供的文档,笔者自己写的总结,涵盖了HDFS shell的所有命令。水平有限,错误在所难免。欢迎批评指正。
(1)-appendToFile
用法: hadoop fs -appendToFile <localsrc> ... <dst>
作用:附加文件到指定文件后。
示例:
- 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 Reads the input from stdin.
(2)-cat
用法:hadoop fs -cat URI [URI ...]
作用:查看文件内容(可以查看本地和HDFS上的内容)。
示例:
- hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
- hadoop fs -cat file:///file3 /user/hadoop/file4
(3)-checksum
用法: hadoop fs -checksum URI
作用:查看文件校验和。(例子显示了MD5)、
示例:
- hadoop fs -checksum hdfs://nn1.example.com/file1
- hadoop fs -checksum file:///etc/hosts
(4)-chgrp
用法: hadoop fs -chgrp [-R] GROUP URI [URI ...]
作用:改变文件所属的组。(Change group association of files.)
使用-R 将使改变在目录结构下递归进行。
(5)-chmod
作用:改变文件访问权限。
用法:hadoop fs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
这里可以参考 linux下文件系统的chmod的用法,基本类似。
(6)-chown
作用:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]
用法:改变文件的所有者。使用-R 将使改变在目录结构下递归进行。命令的使用者必须是超级用户。
(7)-copyFromLocal
用法:hadoop fs -copyFromLocal <localsrc> URI
作用:类似于put命令,和put不同的是,拷贝的源地址必须是本地文件地址。
-f 参数 当拷贝的目标文件存在时,进行覆盖。
示例:
taodj@ubuntu:~$ hadoop fs -copyFromLocal testFlatMap.txt /1.txt
copyFromLocal: `/1.txt': File exists
这个时候加上-f参数。即可覆盖。
taodj@ubuntu:~$ hadoop fs -copyFromLocal -f testFlatMap.txt /1.txt
(8)-copyToLocal
用法: hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>
作用:类似于get指令。和get不同的是,拷贝的目的地址必须是本地文件地址。
(9)-count
作用:计算paths下的目录数,文件数和字节数。
用法: hadoop fs -count [-q] [-h] [-v] <paths>
- 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
- hdfs dfs -count -q -h -v hdfs://nn1.example.com/file1
(10)-cp
- The -p option will preserve file attributes [topx] (timestamps, ownership, permission, ACL, XAttr). If -p is specified with no arg, then preserves timestamps, ownership, permission. If -pa is specified, then preserves permission also because ACL is a super-set of permission. Determination of whether raw namespace extended attributes are preserved is independent of the -p flag.
(11)-df
(12)-dus
(13)-expunge
(14)-find
(15)-get
Example:
- hadoop fs -get /user/hadoop/file localfile
- hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile
(16)getfacl
hadoop fs -getfattr [-R] -n name | -d [-e en] <path>
Displays the extended attribute names and values (if any) for a file or directory.
Options:
- -R: Recursively list the attributes for all files and directories.
- -n name: Dump the named extended attribute value.
- -d: Dump all extended attribute values associated with pathname.
- -e encoding: Encode values after retrieving them. Valid encodings are “text”, “hex”, and “base64”. Values encoded as text strings are enclosed in double quotes ("), and values encoded as hexadecimal and base64 are prefixed with 0x and 0s, respectively.
- path: The file or directory.
- hadoop fs -getfattr -d /file
- hadoop fs -getfattr -R -n user.myAttr /dir
(17)-getmerge
(18)-help
(19)-ls
(20)-lsr
(21)-mkdir
(22)-moveFromLocal
(23)-moveToLocal
(24)-mv
(25)-put
(26)-rm
(27)-rmdir
(28)-rmr
(29)-setfacl
- 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
(30)-setrep
(31)-stat
(32)-tail
(33)-text
(34)-touchz
(35)-truncate
作用:将文件按照length进行截取。可以理解成截取[1/length]部分。
选项:-w:
(对于该指令仅仅是个人理解,不一定正确)
如果其他应用在使用文件时候,-w可以保证使用不会出现问题并且可以正常截断。
比如两个端口:一个端口执行命令: hadoop fs -tail -f /test1to10.txt
另一端口执行:hadoop fs -cat /test1to10.txt。而此时tail的端口并没有受到影响。
示例:
- hadoop fs -truncate 55 /user/hadoop/file1 /user/hadoop/file2
- hadoop fs -truncate -w 127 hdfs://nn1.example.com/user/hadoop/file1
(36)-usage