Hadoop Shell命令(版本:2.7.2)

Hadoop Shell命令(版本:2.7.2)

官方文档2.7.2

官方中文1.0.4

  • 概观
    • appendToFile
    • cat
    • checksum
    • chgrp
    • chmod
    • chown
    • copyFromLocal
    • copyToLocal
    • count
    • cp
    • createSnapshot
    • deleteSnapshot
    • df
    • du
    • dus
    • expunge
    • find
    • get
    • getfacl
    • getfattr
    • getmerge
    • help
    • ls
    • lsr
    • mkdir
    • moveFromLocal
    • moveToLocal
    • mv
    • put
    • renameSnapshot
    • rm
    • rmdir
    • rmr
    • setfacl
    • setfattr
    • setrep
    • stat
    • tail
    • test
    • text
    • touchz
    • truncate
    • usage

概观

文件系统(FS)shell包括各种类似shell的命令,这些命令直接与Hadoop分布式文件系统(HDFS)以及Hadoop支持的其他文件系统交互,例如本地FS,HFTP FS,S3 FS等。FS shell由以下方式调用:

bin/hadoop fs <args>

所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。可以将HDFS文件或目录(例如/parent/child)指定为hdfs://namenodehost/parent/child或简单地指定为/parent/child(假设您的配置设置为指向hdfs://namenodehost)。

大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout。

cat

如果正在使用HDFS,则hdfs dfs是同义词。

有关通用shell选项,请参阅命令手册

appendToFile

用法:

hadoop fs -appendToFile <localsrc> ... <dst>

将单个src或多个srcs从本地文件系统附加到目标文件系统。还从stdin读取输入并附加到目标文件系统。

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.

退出代码:

成功时返回0,错误时返回1。

cat

用法:

hadoop fs -cat URI [URI ...]

将源路径复制到stdout。

例:

hadoop fs -cat hdfs://nn1.example.com/file1 hdfs://nn2.example.com/file2
hadoop fs -cat file:///file3 /user/hadoop/file4

退出代码:

成功时返回0,错误时返回-1。

checksum

用法:

hadoop fs -checksum URI

返回文件的校验和信息。

例:

hadoop fs -checksum hdfs://nn1.example.com/file1
hadoop fs -checksum file:///etc/hosts

chgrp

用法:

hadoop fs -chgrp [-R] GROUP URI [URI ...]

更改文件的组关联。用户必须是文件的所有者,否则必须是超级用户。其他信息在“ 权限指南”中。

选项

  • -R选项将通过目录结构递归地进行更改。

chmod

用法:

hadoop fs -chmod [-R] <MODE [,MODE] ... | OCTALMODE> URI [URI ...]

更改文件的权限。使用-R,通过目录结构递归更改。用户必须是文件的所有者,否则必须是超级用户。其他信息在“ 权限指南”中。

选项

  • -R选项将通过目录结构递归地进行更改。

chown

用法:

hadoop fs -chown [-R] [OWNER] [:[GROUP]] URI [URI]

更改文件的所有者。用户必须是超级用户。其他信息在“ 权限指南”中。

选项

  • -R选项将通过目录结构递归地进行更改。

copyFromLocal

用法:

hadoop fs -copyFromLocal <localsrc> URI

与put命令类似,但源仅限于本地文件引用。

选项:

  • -f 如果目标已存在,则覆盖目标。

copyToLocal

用法:

hadoop fs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

与get命令类似,但目标仅限于本地文件引用。

count

用法:

hadoop fs -count [-q] [-h] [-v] <paths>

计算与指定文件模式匹配的路径下的目录,文件和字节数。-count的输出列为:DIR_COUNT,FILE_COUNT,CONTENT_SIZE,PATHNAME

-count -q的输出列为:QUOTA,REMAINING_QUATA,SPACE_QUOTA,REMAINING_SPACE_QUOTA,DIR_COUNT,FILE_COUNT,CONTENT_SIZE,PATHNAME

-h选项以人类可读格式显示大小。

-v选项显示标题行。

例:

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
```shell
退出代码:

成功时返回0,错误时返回-1。

## cp
用法:
```shell
hadoop fs -cp [-f] [-p | -p [topax]] URI [URI ...] <dest>

将文件从源复制到目标。此命令也允许多个源,在这种情况下,目标必须是目录。

如果(1)源文件系统和目标文件系统支持它们(仅限HDFS),并且(2)所有源和目标路径名都在/.reserved/raw层次结构中,则保留'raw。'命名空间扩展属性。是否保留raw。 namespace xattrs的确定与-p(保留)标志无关。

选项:

如果目标已存在,则-f选项将覆盖目标。
-p选项将保留文件属性[topx](时间戳,所有权,权限,ACL,XAttr)。如果指定了-p且没有arg,则保留时间戳,所有权和权限。如果指定了-pa,则还保留权限,因为ACL是一组超级权限。确定是否保留原始命名空间扩展属性与-p标志无关。

例:

hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir

退出代码:

成功时返回0,错误时返回-1。

createSnapshot

请参阅"HDFS快照指南"

deleteSnapshot

请参阅"HDFS快照指南"

df

用法:

hadoop fs -df [-h] URI [URI ...]

显示可用空间。

选项:

  • -h选项将以“人类可读”的方式格式化文件大小(例如64.0m而不是67108864)

例:

hadoop dfs -df /user/hadoop/dir1

du

用法:

hadoop fs -du [-s] [-h] URI [URI ...]

显示给定目录中包含的文件和目录的大小或文件的长度,以防它只是一个文件。

选项:

  • -s选项将导致显示文件长度的汇总摘要,而不是单个文件。
  • -h选项将以“人类可读”的方式格式化文件大小(例如64.0m而不是67108864)

例:

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

退出代码:成功时返回0,错误时返回-1。

dus

用法:

hadoop fs -dus <args>

显示文件长度的摘要。

注意:不推荐使用此命令。而是使用hadoop fs -du -s。

expunge

用法:

hadoop fs -expunge

清空垃圾。有关“废纸篓”功能的详细信息,请参阅"HDFS体系结构指南"

find

用法:

hadoop fs -find <path> ... <expression> ...

查找与指定表达式匹配的所有文件,并将选定的操作应用于它们。如果未指定路径,则默认为当前工作目录。如果未指定表达式,则默认为-print。

识别以下主要表达式:

  • -name pattern
    -iname pattern

如果文件的基名与使用标准文件系统globbing的模式匹配,则求值为true。如果使用-iname,则匹配不区分大小写。

  • -print
    -print0Always

评估为真。使当前路径名写入标准输出。如果使用-print0表达式,则附加ASCII NULL字符。

以下运营商得到承认:

  • expression -a expression
    expression -and expression
    expression expression

用于连接两个表达式的逻辑AND运算符。如果两个子表达式都返回true,则返回true。由两个表达式的并置所暗示,因此不需要明确指定。如果第一个表达式失败,则不会应用第二个表达式。

例:

hadoop fs -find / -name test -print

退出代码:

成功时返回0,错误时返回-1。

get

用法:

hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>

将文件复制到本地文件系统。可以使用-ignorecrc选项复制CRC校验失败的文件。可以使用-crc选项复制文件和CRC。

例:

hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://nn.example.com/user/hadoop/file localfile

退出代码:

成功时返回0,错误时返回-1。

getfacl

用法:

hadoop fs -getfacl [-R] <path>

显示文件和目录的访问控制列表(ACL)。如果目录具有默认ACL,则getfacl还会显示默认ACL。

选项:

  • -R:递归列出所有文件和目录的ACL。
  • path:要列出的文件或目录。

例子:

hadoop fs -getfacl /file
hadoop fs -getfacl -R /dir

退出代码:

成功时返回0,错误时返回非零。

getfattr

用法:

hadoop fs -getfattr [-R] -n name | -d [-e en] <path>

显示文件或目录的扩展属性名称和值(如果有)。

选项:

  • -R:递归列出所有文件和目录的属性。
  • -n name:转储指定的扩展属性值。
  • -d:转储与pathname关联的所有扩展属性值。
  • -e encoding:检索后对代码值进行编码。有效编码为“text”,“hex”和“base64”。编码为文本字符串的值用双引号(“)括起来,编码为十六进制和base64的值分别以0x和0s为前缀。
  • path:文件或目录。

例子:

hadoop fs -getfattr -d /file
hadoop fs -getfattr -R -n user.myAttr /dir

退出代码:

成功时返回0,错误时返回非零。

getmerge

用法:

hadoop fs -getmerge [-nl] <src> <localdst>

将源目录和目标文件作为输入,并将src中的文件连接到目标本地文件。可选地,-nl可以设置为允许在每个文件的末尾添加换行符(LF)。

例子:

hadoop fs -getmerge -nl /src /opt/output.txt
hadoop fs -getmerge -nl /src/file1.txt /src/file2.txt /output.txt

退出代码:

成功时返回0,错误时返回非零。

help

用法:

hadoop fs -help

返回使用量输出。

ls

用法:

hadoop fs -ls [-d] [-h] [-R] <args>

选项:

  • -d:目录列为纯文件。
  • -h:以人类可读的方式格式化文件大小(例如64.0m而不是67108864)。
  • -R:递归列出遇到的子目录。

对于文件,ls使用以下格式返回文件的stat:

permissions number_of_replicas userid groupid filesize modification_date modification_time filename

对于目录,它返回其直接子节点的列表,如在Unix中。目录列为:

permissions userid groupid modification_date modification_time dirname

默认情况下,目录中的文件按文件名排序。

例:

hadoop fs -ls /user/hadoop/file1

退出代码:

成功时返回0,错误时返回-1。

lsr

用法:

hadoop fs -lsr <args>

ls的递归版本。

注意:不推荐使用此命令。而是使用hadoop fs -ls -R

mkdir

用法:

hadoop fs -mkdir [-p] <paths>

将路径uri作为参数并创建目录。

选项:

  • -p选项行为很像Unix mkdir -p,沿路径创建父目录。

例:

hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://nn1.example.com/user/hadoop/dir hdfs://nn2.example.com/user/hadoop/dir

退出代码:

成功时返回0,错误时返回-1。

moveFromLocal

用法:

hadoop fs -moveFromLocal <localsrc> <dst>

与put命令类似,只是在复制后删除了源localsrc。

moveToLocal

用法:

hadoop fs -moveToLocal [-crc] <src> <dst>

显示“尚未实现”消息。

mv

用法:

hadoop fs -mv URI [URI ...] <dest>

将文件从源移动到目标。此命令允许多个源,在这种情况下,目标需要是目录。不允许跨文件系统移动文件。

例:

hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://nn.example.com/file1 hdfs://nn.example.com/file2 hdfs://nn.example.com/file3 hdfs://nn.example.com/dir1

退出代码:

成功时返回0,错误时返回-1。

put

用法:

hadoop fs -put <localsrc> ... <dst>

将单个src或多个srcs从本地文件系统复制到目标文件系统。还从stdin读取输入并写入目标文件系统。

hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://nn.example.com/hadoop/hadoopfile
hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin.

退出代码:

成功时返回0,错误时返回-1。

renameSnapshot

请参阅"HDFS快照指南"

rm

用法:

hadoop fs -rm [-f] [-r | -R] [-skipTrash] URI [URI ...]

删除指定为args的文件。

选项:

  • 如果文件不存在,-f选项将不显示诊断消息或修改退出状态以反映错误。
  • -R选项以递归方式删除目录及其下的任何内容。
  • -r选项等效于-R。
  • -skipTrash选项将绕过垃圾桶(如果已启用),并立即删除指定的文件。当需要从超配额目录中删除文件时,这非常有用。

例:

hadoop fs -rm hdfs://nn.example.com/file /user/hadoop/emptydir

退出代码:

成功时返回0,错误时返回-1。

rmdir

用法:

hadoop fs -rmdir [--ignore-fail-on-non-empty] URI [URI ...]

删除目录。

选项:

  • --ignore-fail-on-non-empty:使用通配符时,如果目录仍包含文件,请不要失败。

例:

hadoop fs -rmdir /user/hadoop/emptydir

rmr

用法:

hadoop fs -rmr [-skipTrash] URI [URI ...]

删除的递归版本。

注意:不推荐使用此命令。而是使用hadoop fs -rm -r

setfacl

用法:

hadoop fs -setfacl [-R] [-b | -k -m | -x <acl_spec> <path>] | [ - set <acl_spec> <path>]

设置文件和目录的访问控制列表(ACL)。

选项:

  • -b:删除除基本ACL条目之外的所有条目。保留用户,组和其他条目以与权限位兼容。
  • -k:删除默认ACL。
  • -R:递归地对所有文件和目录应用操作。
  • -m:修改ACL。新条目将添加到ACL,并保留现有条目。
  • -x:删除指定的ACL条目。保留其他ACL条目。
  • --set:完全替换ACL,丢弃所有现有条目。所述acl_spec必须包括用户,组条目和其他用于与权限位兼容性。
  • acl_spec:以逗号分隔的ACL条目列表。
  • path:要修改的文件或目录。

例子:

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

退出代码:

成功时返回0,错误时返回非零。

setfattr

用法:

hadoop fs -setfattr -n name [-v value] | -x name <path>

设置文件或目录的扩展属性名称和值。

选项:

  • -b:删除除基本ACL条目之外的所有条目。保留用户,组和其他条目以与权限位兼容。
  • -n name:扩展属性名称。
  • -v value:扩展属性值。该值有三种不同的编码方法。如果参数用双引号括起来,那么值就是引号内的字符串。如果参数的前缀为0x或0X,则将其视为十六进制数。如果参数以0或0S开头,则将其视为base64编码。
  • -x name:删除扩展属性。
  • path:文件或目录。

例子:

hadoop fs -setfattr -n user.myAttr -v myValue /file
hadoop fs -setfattr -n user.noValue /file
hadoop fs -setfattr -x user.myAttr /file

退出代码:

成功时返回0,错误时返回非零。

setrep

用法:

hadoop fs -setrep [-R] [-w] <numReplicas> <path>

更改文件的复制因子。如果path是目录,则命令以递归方式更改以path为根的目录树下的所有文件的复制因子。

选项:

  • -w标志请求命令等待复制完成。这可能需要很长时间。
  • 接受-R标志是为了向后兼容。它没有效果。

例:

hadoop fs -setrep -w 3 /user/hadoop/dir1

退出代码:

成功时返回0,错误时返回-1。

stat

用法:

hadoop fs -stat [格式] <路径> ...

以指定格式打印有关<path>的文件/目录的统计信息。格式接受块(%b),类型(%F),所有者组名(%g),名称(%n),块大小(%o),复制(%r),所有者用户名(%)的文件大小u)和修改日期(%y,%Y)。%y将UTC日期显示为“yyyy-MM-dd HH:mm:ss”,%Y显示自1970年1月1日UTC以来的毫秒数。如果未指定格式,则默认使用%y。

例:

hadoop fs -stat "%F %u:%g %b %y %n" /file

退出代码:成功时返回0,错误时返回-1。

tail

用法:

hadoop fs -tail [-f] URI

显示文件的最后一千字节到stdout。

选项:

  • -f选项将在文件增长时输出附加数据,如在Unix中一样。

例:

hadoop fs -tail pathname

退出代码:成功时返回0,错误时返回-1。

test

用法:

hadoop fs -test - [defsz] URI

选项:

  • -d:f路径是目录,返回0。
  • -e:如果路径存在,则返回0。
  • -f:如果路径是文件,则返回0。
  • -s:如果路径不为空,则返回0。
  • -z:如果文件长度为零,则返回0。

例:

hadoop fs -test -e filename

text

用法:

hadoop fs -text <src>

获取源文件并以文本格式输出文件。允许的格式为zip和TextRecordInputStream。

touchz

用法:

hadoop fs -touchz URI [URI ...]

创建一个零长度的文件。

例:

hadoop fs -touchz pathname

退出代码:成功时返回0,错误时返回-1。

truncate

用法:

hadoop fs -truncate [-w] <length> <paths>

将与指定文件模式匹配的所有文件截断为指定的长度。

选项:

  • 该-w标志的要求,对块恢复命令如有必要,等待完成。如果没有-w标志,则在恢复过程中文件可能会保持未闭合一段时间。在此期间,无法重新打开文件以进行追加。

例:

hadoop fs -truncate 55 /user/hadoop/file1 /user/hadoop/file2
hadoop fs -truncate -w 127 hdfs://nn1.example.com/user/hadoop/file1

usage

用法:

hadoop fs -usage命令

返回单个命令的帮助。

猜你喜欢

转载自blog.51cto.com/moerjinrong/2344690
今日推荐