首页 > 代码库 > Apache Hadoop2.4.1 Filesystem shell

Apache Hadoop2.4.1 Filesystem shell

overview

文件系统(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。

appendToFile

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表示失败。

cat

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代表失败。

chgrp

Usage: hdfs dfs -chgrp [-R] GROUP URI  [URI ...]

改变文件所属的组,必须是用户自己的文件,或者是超级管理员。 更多信息请参考  Permissions Guide. 

Options

-R 选项将会递归的边改目录结构。

chmod

Usage: hdfs dfs -chmod [-R] <MODE[,MODE]... | OCTALMODE> URI [URI ...]

改变文件的权限。使用-R,循环的改变目录结构。文件必须属于用户自己,或者是一个超级管理员。更多信息请参考Permissions Guide.、

Options

-R 选项将会递归的边改目录结构。

chown

Usage: hdfs dfs -chown [-R] [OWNER][: [GROUP]] URI [URI]

改变文件的归属者,修改的用户必须是一个超级管理员。更多信息请参考Permissions Guide.

Options

-R 选项将会递归的边改目录结构。

copyFromLocal

Usage: hdfs dfs -copyFromLocal  <localhostsrc> URI

类似于put命令,除了这个源是一个受限制的本地系统引用。

Options:

-f选项表示如果这个目标文件已经存在将会被覆盖。

copyToLocal

Usage:hdfs dfs -copyToLocal [ignorecrc] [-crc] URI [localdst]

类似于get命令,除了这个源是一个受限制的本地系统引用。

count

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表示失败。

cp

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表示失败。

du

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:

  • hdfs dfs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://nn.example.com/user/hadoop/dir1

退出代码:0表示成功,1表示失败。

dus

Usage:hdfs dfs -dus <args>

显示文件的长度,这是hdfs dfs -du -s的另一种凡方式。

expunge

Usage:hdfs dfs -expunge

清空垃圾箱,了解更多的信息请参考  HDFS Architecture Guide。

get

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代表失败。

getfacl

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代表失败。

getmerge

Usage: hdfs dfs -getmerge <src> <localdst> [addn1]

ls

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失败。

lsr

Usage:hdfs dfs -lsr <args>

ls的递归版本,类似于Unix的ls -R

mkdir

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失败。

moveFromLocal

Usage:hdfs  dfs -moveFromLocal  <localsrc> <dst>

类似于put命令,除了源localsrc在它被复制后删除。

moveToLocal

Usage:hdfs dfs -moveToLocal  [-crc] [src] [dst]

显示一个“Not implemented yet”的消息

mv

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表示失败。

put

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表示失败。

rm

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表示失败。

rmr

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表示失败。

setfacl

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表示失败。

setrep

Usage: hdfs dfs -setrep [-R] [-W] <numReplicas> <path>

 改变一个文件的重复因子,如果path是一个目录,这个命令将递归以树的方式来改变重复因子。

Options:

-w表示请求命令等待复制完成,可能将会花很长一段时间。

-R

Example:

hdfs dfs -setrep -w 3 /user/hadoop/dir1

退出代码:0表示成功,-1表示失败。

stat

Usage:hdfs dfs -stat URI [URI...]

返回path中的信息状态。

Example:

hdfs dfs -stat path

退出代码:0表示成功,-1表示错误。

tail

Usage:hdfs dfs -tail [-f] URI

显示输出文件的千字节。

Options:

-f选项将输出追加数据作为文件的增长。

Example:

hdfs dfs -tail pathname

 退出代码:0表示成功,-1表示错误。

test

Usage: hdfs dfs -test -[ezd] URI

Options:

-e选项用于检测文件是否存在,若存在返回0

-z选项用于检测文件长度是否为0,若长度为0则返回0

-d选项用于检测路径是否为目录,返回0表示真

Example:

hdfs hdf -test -e filename

text

Usage: hdfs dfs -text <src>

让一个源文件用text的格式输出,允许的格式是Zip和TextRecordInputStream。

touchz

Usage:hdfs dfs -touchz URI [URI...]

创建一个长度为0的文件。

Example:

hdfs dfs -touchz pathname

退出代码:0表示成功,-1表示失败。

Apache Hadoop2.4.1 Filesystem shell