HDFS文件系统命令详解

简介:

【fs最常用命令】

1
2
3
4
5
6
7
bin/hadoop fs -ls hdfs_path     //查看HDFS目录下的文件和子目录
bin/hadoop fs -mkdir hdfs_path     //在HDFS上创建文件夹
bin/hadoop fs -rm hdfs_path     //删除HDFS上的文件
bin/hadoop fs -rmr hdfs_path     //删除HDFS上的文件夹
bin/hadoop fs -put local_file hdfs_path     //将本地文件copy到HDFS上
bin/hadoop fs -get hdfs_file local_path     //复制HDFS文件到本地
bin/hadoop fs -cat hdfs_file     //查看HDFS上某文件的内容

【查看目录下文件(夹)大小】

1
2
3
4
5
6
//单位Byte:
bin/hadoop fs -du / | sort -n
//单位MB:
bin/hadoop fs -du / | awk -F  ' '   '{printf "%.2fMB\t\t%s\n", $1/1024/1024,$2}'  | sort -n
//单位GB,大于1G:
bin/hadoop fs -du / | awk -F  ' '   '{num=$1/1024/1024/1024; if(num>1){printf "%.2fGB\t\t%s\n", num, $2} }'  | sort -n

以下内容walker摘自《Hadoop实战(第二版)》(陆嘉恒)第九章-HDFS详解。

  fs可以说是HDFS最常用的命令,这是一个高度类似linux文件系统的命令集。你可以使用这些命令查看HDFS上的目录结构文件、上传和下载文件、创建文件夹、复制文件等。其使用方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
hadoop fs [genericOpitions]
[-ls <path>]   //显示目标路径当前目录下的所有文件
[-lsr <path>]   //递归显示目标路径下的所有目录及文件(深度优先)
[-du <path>]   //以字节为单位显示目录中所有文件的大小,或该文件的大小(如果path为文件)
[-dus <paht>]   //以字节为单位显示目标文件大小(用于查看文件夹大小)
[-count [-q] <path>]   //将目录的大小、包含文件(包括文件)个数的信息输出到屏幕(标准stdout)
[-mv <src> <dst>]   //把文件或目录移动到目标路径,这个命令允许同时移动多个文件,但是只允许移动到一个目标路径中,参数中的最有一个文件夹即为目标路径
[-cp <src> <dst>]   //复制文件或目录到目标路径,这个命令允许同时复制多个文件,如果复制多个文件,目标路径必须是文件夹
[-rm [-skipTrash] <path>]   //删除文件,这个命令不能删除文件夹
[-rmr [-skipTrash] <path>]   //删除文件夹及其下的所有文件
[-expunge]
[-put <localsrc> ... <dst>]   //从本地文件系统上传文件到HDFS中
[-copyFromLocal <localsrc> ... <dst>]   //与put相同
[-moveFromLocal <localsrc> ... <dst>]   //与put相同,但是文件上传之后会从本地文件系统中移除
[-get [-ignoreCrc] [-crc] <src> <localdst>]   //复制文件到本地文件系统。这个命令可以选择是否忽视校验和,忽视校验和和下载主要用于挽救那些已经发生错误的文件
[-getmerge <src> <localdst> [addnl]]   //将源目录中的所有文件进行排序并写入目标文件中,文件之间以换行符分隔
[-cat <src>]   //在终端显示(标准输出stdout)文件中的内容,类似Linux系统中的cat
[-text <src>]
[-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]  //与get相同
[-moveToLocal [-crc] <src> <localdst>]
[-mkidr <path>]   //创建文件夹
[-setrep [-R] [-w] <rep> <path/file>]   //改变一个文件的副本个数。参数-R可以递归地对该目录下的所有文件做统一操作
[-touchz <path>]   //类似Linux中的touch,创建一个空文件
[-test -[ezd] <path>]   //将源文件输出为文本格式显示到终端上,通过这个命令可以查看TextRecordInputStream(SequenceFile等)或zip文件
[-stat [format] <path>]   //以指定格式返回路径的信息
[-tail [-f] <file>]   //在终端上显示(标准输出stdout)文件的最后1kb内容。-f选项的行为与LInux中一致,会持续监测先添加到文件中的内容,这在查看日志文件时会显得非常方便。
[-chmod [-R] <MODE[,MODE]...| OCTALMODE> PATH...]   //改变文件的权限,只有文件的所有者或者是超级用户才能使用这个命令。-R可以递归地改变文件夹内的所有文件的权限
[-chown [-R] [OWNER] [:[GROUP] PATH...]]   //改变文件的拥有者,-R可以递归地改变文件夹内所有文件的拥有者。同样,这个命令只有超级用户才能使用
[-chgrp [-R] GROUP PATH...]   //改变文件所属的组,-R可以递归地改变文件夹内所有文件所属的组。这个命令必须是超级用户才能使用
[-help [cmd]]   //这是命令的帮助信息

  在这些命令中,参数<path>的完整格式是hdfs://NameNodeIP:port/,比如你的NameNode地址是192.168.0.1,端口是9000,那么,如果想访问HDFS上路径为/user/root/hello的文件,则需要输入的地址是hdfs:/192.168.0.1:9000/user/root/hello。在Hadoop中,如果参数<path>没有NameNodeIP,那么会默认按照core-site.xml中属性fs.default.name的设置,附加“/user/你的用户名”作为路径,这是为了方便使用以及对不同用户进行区分。


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1689205如需转载请自行联系原作者


RQSLT

相关文章
|
6月前
|
存储 分布式计算 Hadoop
HDFS 修改副本数&fsck命令
HDFS 修改副本数&fsck命令
262 0
|
5月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
256 0
|
6月前
|
API
HDFS基本命令及上传文件API
HDFS基本命令及上传文件API
|
24天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
30 5
|
2月前
|
分布式计算 Hadoop Linux
HDFS的常用命令
HDFS的常用命令
18 0
|
5月前
|
存储 分布式计算 大数据
大数据笔记 | HDFS 常用操作命令
大数据笔记 | HDFS 常用操作命令
119 0
|
6月前
|
分布式计算 Hadoop
HDFS教程(02)- HDFS命令汇总
HDFS教程(02)- HDFS命令汇总
72 0
|
6月前
|
存储 分布式计算 Hadoop
HDFS文件操作命令
HDFS文件操作命令
62 0
|
7月前
|
分布式计算 大数据 Hadoop
【大数据开发技术】实验02-HDFS常用shell命令
【大数据开发技术】实验02-HDFS常用shell命令
101 0
|
9月前
|
移动开发 分布式计算 Hadoop
访问HDFS的常用接口,常用命令操作
访问HDFS的常用接口,常用命令操作
148 0