hdfs文件操作
作者:Zhan-bin
日期:2018-6-30
Hadoop网页版文件管理
输入命令查看端口:
1.列出hadoop指定目录下的文件
示例(查看hadoop根目录下的文件列表):
2.新建文件夹
1
| hadoop dfs -mkdir /input #创建一个名为input的文件夹
|
3.上传本地文件
- 现在我将/usr/local/winupload文件夹下面的hadoop压缩文件上传到hadoop文件系统中,先切换到winupload下,再执行上传
1 2
| cd /usr/local/winupload hadoop fs -put ./jdk-8u171-linux-x64.tar.gz /
|
4.删除文件
1
| hadoop fs -rm -r /output #删除output文件夹
|
5.其他文件命令
常用文件命令
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
|
fs命令
- 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]] //这是命令的帮助信息
|