文件系统(FS) shell包含各种与HDFS交互的命令, 比如 Local FS, HFTP FS, S3 FS, and other. FS shell 执行通过下面的命令:
bin/hdfs dfs <args>
所有的FS shell的可以使用路径URI作为参数。URI的格式是 scheme:authority/path。 HDFS的scheme是hdfs,本地文件的scheme是file。scheme和authority是可选的,如果没有指定,默认的使用配置文件中指定的scheme。 HDFS 文件或者目录比如 /parent/child 可以是被指定为hdfs://namdenodehost/parent/child 或者简单的路径 。
FS大多数命令类似于Unix命令的拼写。 不同的是每个命令的描述。错误被发送到stderr或者输出到stdout。
Usage: hdfs dfs -appendToFile <localsrc> ... <dst>
追加个简单的src,或者多个srcs 从本地文件到目的文件系统。 也可以从stdin中读到input或者追加到目标文件。
hdfs dfs -appendToFile localfile /usr/hadoop/hadoopfile
hdfs dfs -appendToFile localfile1 localfile2 /usr/hadoop/hadoopfile
hdfs dfs -appendToFile localfile hdfs://nn.example.com/hadoop/hadoopfile
hdfs dfs -appendToFile - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.
退出代码: 0表示成功,1表示失败。
Usage: hdfs dfs -cat URI [URI ...]
复制源路径到stdout。
例如:
hdfs dfs -cat hdfs://nn1.example.com/file1/ hdfs://nn2.example.com/file2/
hdfs dfs -cat file:///file3 /user/hadoop/file4
退出代码: 0代表成功, 1代表失败。
Usage: hdfs dfs -chgrp [-R] GROUP URI [URI ...]
改变文件所属的组,必须是用户自己的文件,或者是超级管理员。 更多信息请参考 Permissions Guide.
Options
-R 选项将会递归的边改目录结构。
Usage: hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]
改变文件的权限。使用-R,循环的改变目录结构。文件必须属于用户自己,或者是一个超级管理员。更多信息请参考Permissions Guide.、
Options
-R 选项将会递归的边改目录结构。
Usage: hdfs dfs -chown [-R] [OWNER][: [GROUP]] URI [URI]
改变文件的归属者,修改的用户必须是一个超级管理员。更多信息请参考Permissions Guide.
Options
-R 选项将会递归的边改目录结构。
Usage: hdfs dfs -copyFromLocal <localhostsrc> URI
类似于put命令,除了这个源是一个受限制的本地系统引用。
Options:
-f选项表示如果这个目标文件已经存在将会被覆盖。
Usage:hdfs dfs -copyToLocal [ignorecrc] [-crc] URI [localdst]
类似于get命令,除了这个源是一个受限制的本地系统引用。
Usage: hdfs dfs -count [-q] <paths>
统计与指定文件相匹配模式下的目录,文件,字节的数量。用-count输出的列是:FILE_COUNT, CONTENT_SIZE FILE_NAME。
用 -count -q 输出的列式 : QUOTA, REMAINING_QUATA, SPACE_QUOTA, REMAINING_SPACE_QUOTA, DIR_COUNT, FILE_COUNT, CONTENT_SIZE, FILE_NAME
例如:
hdfs dfs -count hdfs://nn1.example.com/file1 hdfs://nn.example.com/file2
hdfs dfs -count -q hdfs://nn1.example.com/file1
退出代码:0表示成功,1表示失败。
Usage:hdfs dfs -cp [-f] URI [URI...] <dest>
复制文件从source到destination。这个命令允许有多个源但是目标文件必须是一个目录。
Option:
-f 表示当目标文件存在的时候将要覆盖此文件
例如:
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir
退出代码:0表示成功,1表示失败。
Usage: hdfs dfs -du [-s] [-h] URI[URI...]
选项:
The -s option will result in an aggregate summary of file lengths being displayed, rather than the individual files.
The -h option will format file sizes in a "human-readable" fashion (e.g 64.0m instead of 67108864)
Example:
退出代码:0表示成功,1表示失败。
Usage:hdfs dfs -dus <args>
显示文件的长度,这是hdfs dfs -du -s的另一种凡方式。
Usage:hdfs dfs -expunge
清空垃圾箱,了解更多的信息请参考 HDFS Architecture Guide。
Usage:hdfs dfs [-ignorecrc] [-crc] <src> <localdst>
复制文件到本地文件系统, 文件的CRC检验失败可以使用copied选项被复制, 文件和CRCs可以使用-crc选项复制。
Example:
hdfs dfs -get /user/hadoop/file localfile
hdfs dfs -get hdfs://nn.example.com/user/hadoop/file localfie
返回0代表成功,1代表失败。
Usage:hdfs dfs -getfacl [-R] <path>
显示文件或者目录的访问控制列表。如果目录有一个默认的ACL(Access Control List),getfacl也可以显示默认的ACL。
Options:
-R: 递归的列出文件目录下所有的ACL。
-path:文件或者目录路径。
Example:
hdfs dfs -getfacl /file
hdfs dfs -getfacl -R /file
返回0代表成功,1代表失败。
Usage: hdfs dfs -getmerge <src> <localdst> [addn1]
Usage:hdfs dfs -ls <args>
以下面格式返回文件的状态:
permissions nuber_of_replicas userid groupid filesize modification_data modification_time filename
返回目录下子目录的信息,一个目录列表如下:
permissions userid groupid modification_date modification_tie dirname.
Example:
hdfs dfs -ls /user/hadoop/file1
返回0成功,返回1失败。
Usage:hdfs dfs -lsr <args>
ls的递归版本,类似于Unix的ls -R
Usage: hdfs dfs -mkdr [-p] <paths>
使用url路径作为参数,穿创建一个目录。
Options:
-p选项的行为类似于Unix mkdir -p,创建父目录路径。
Example:
hdfs dfs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hdfs dfs -mkdir hdfs://nn1.example.com/user/hadoop/dir1 hdfs://nn1.example.com/user/hadoop/dir2
返回0成功,返回1失败。
Usage:hdfs dfs -moveFromLocal <localsrc> <dst>
类似于put命令,除了源localsrc是在它被复制后删除。
Usage:hdfs dfs -moveToLocal [-crc] [src] [dst]
显示一个“Not implemented yet”的消息
Usage: hdfs dfs -mv URI [URI...] <dest>
从目的地移动文件,这个命令允许多个目录被作为目的文件,在文件系统移动文件是不允许的。
Example:
hdfs dfs -mv /user/hadoop/file1 /user/hadoop/file2
hdfs dfs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1
返回0表示成功,返回1表示失败。
Usage: hdfs dfs -put <localsrc> ... <dstsrc>
从本地复制一个或者多个源到目标文件系统,也可以从stdin读取input并写入到目标文件系统。
hdfs dfs -put localfile /user/hadoop/hadoopfile
hdfs dfs -put localfile /user/hadoop/hadoopdir
hdfs dfs -put localfile hdfs://nn.example.com/hadoopfile
hdfs dfs -put - hdfs://nn.example.com/hadoopfile (从stdin中读取input)
退出代码:0表示成功,-1表示失败。
Usage:hdfs dfs -rm [-skipTrash] URI [URI...]
删除指定参数的文件,只删除非空的目录。如果-skipTrash被指定,trash被允许,通过指定的文件将立即被删除,当有必要从一个over-quota目录删除文件的时候这可能是有用的。引用rar递归删除。
Example:
hdfs dfs -rm hdfs://nn.example.com/file /user/hadoop/emptydir
退出代码:0表示成功,-1表示失败。
Usage: hdfs dfs -rmr [-skipTrash] URI[URI...]
删除的递归版本。如果-skipTrash被指定,trash被允许,通过指定的文件将立即被删除,当有必要一个over-quota目录删除文件的时候这可能是有用的。
Example:
hdfs dfs -rmr hdfs://nn.example.com/file/
hdfs dfs -rmr /user/hadoop/dir
退出代码:0表示成功,-1表示失败。
Usage:hdfs dfs -setfacl [-R] [-b|-k| -m|-x <acl_spec> <path>] | [--set <acl_spec> <path>]
文件和目录访问控制列表集合。
Options:
-b:
-k:
-R:
-m:
-x:
--set:
acl_spec:
path:
Example:
hdfs dfs -setfacl -m user:hadoop:rw- file
hdfs dfs -setfacl -x user:hadoop /file
hdfs dfs -setfacl -b /file
hdfs dfs -setacl -k /dir
hdfs dfs -setacl --set user::rw-,user::hadoop:rw-,group::r--,other:r-- /file
hdfs dfs -setacl -R -m user:hadoop:r-w /dir
hdfs dfs -setacl -m default:user:hadoop:r-x /dir
退出代码:0表示成功,-1表示失败。
Usage: hdfs dfs -setrep [-R] [-W] <numReplicas> <path>
改变一个文件的重复因子,如果path是一个目录,这个命令将递归以树的方式来改变重复因子。
Options:
-w表示请求命令等待复制完成,可能将会花很长一段时间。
-R
Example:
hdfs dfs -setrep -w 3 /user/hadoop/dir1
退出代码:0表示成功,-1表示失败。
Usage:hdfs dfs -stat URI [URI...]
返回path中的信息状态。
Example:
hdfs dfs -stat path
退出代码:0表示成功,-1表示错误。
Usage:hdfs dfs -tail [-f] URI
显示输出文件的千字节。
Options:
-f选项将输出追加数据作为文件的增长。
Example:
hdfs dfs -tail pathname
退出代码:0表示成功,-1表示错误。
Usage: hdfs dfs -test -[ezd] URI
Options:
-e选项用于检测文件是否存在,若存在返回0
-z选项用于检测文件长度是否为0,若长度为0则返回0
-d选项用于检测路径是否为目录,返回0表示真
Example:
hdfs hdf -test -e filename
Usage: hdfs dfs -text <src>
让一个源文件用text的格式输出,允许的格式是Zip和TextRecordInputStream。
Usage:hdfs dfs -touchz URI [URI...]
创建一个长度为0的文件。
Example:
hdfs dfs -touchz pathname
退出代码:0表示成功,-1表示失败。