HDFS常用的Shell操作

在进行Shell操作之前,我们需要在.bashrc文件中配置环境变量,这样Hadoop命令才可以方便的直接写,而不用写全路径去执行


操作的命令格式

hadoop fs -cmd <args>

cmd:具体的操作,基本上与Linux的命令行相同

<args>:有时需要包含参数

例如:HDFS的 ls 命令

hadoop fs -ls /

列出path目录下的内容,包括文件名、权限、所有者、大小、和修改时间


hadoop fs -ls -R /

递归列出多层文件夹的内容


常用的命令

-help

hadoop fs -help [cmd]

显示命令的帮助信息

例如:hadoop fs -help ls


-mkdir

hadoop fs -mkdir [-p] <paths>

创建文件夹,-p用于时是否递归创建

例如:hadoop fs -mkdir -p /user1/hadoop


-put

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

从本地文件系统中复制单个或多个源路径到目标文件系统

例如:hadoop fs -put data.txt /user1/


也支持从标准输入中读取输入写入目标文件系统

例如:hadoop fs -put - /user1/hadoopfile


-cat

hadoop fs -cat URI[URI...]

查看文件内容

例如:hadoop fs -cat /user1/hadoopfile._COPYING_


-get

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

复制文件到本地文件

例如:hadoop fs -get /user1/hadoopfile._COPYING_ data1.txt


-rm

hadoop fs -rm URI[URI...]

删除指定的文件,只删除非空目录和文件

例如:hadoop fs -rm /user1/hadoopfile._COPYING_


hadoop fs -rm -r URI[URI...]

递归删除,可以删除有文件的文件夹

例如:hadoop fs -rm -r /user1


-getmerge

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

接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件

-nl 在每个文件的最后增加一个新行

例如:hadoop fs -getmerge /input1 file1.txt


-mv

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

将文件从源路径移动到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录

例如:hadoop fs -mv /user/data.txt /input1


注意:不允许在不同的文件系统间移动文件

-cp

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

将文件从源路径复制到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录

例如:hadoop fs -cp /input1/data.txt /user


-du

hadoop fs -du URI[URI...]

显示目录中所有文件的大小

例如:hadoop fs -du /input1


hadoop fs -du -s <args>

显示文件大小

例如:hadoop fs -du -s /input1


-touchz

hadoop fs -touchz URI[URI...]

创建一个0字节的空文件

例如:hadoop fs -touchz /user/file.txt


-stat

hadoop fs -stat URI[URI...]

返回指定路径的统计信息

例如:hadoop fs -stat /input1


-tail

hadoop fs -tail [-f] URI

将文件尾部1K字节的内容输出到stdout,支持 -f 选项,行为和linux中一致

-expunge

hadoop fs -expunge

清空回收站

猜你喜欢

转载自blog.csdn.net/wxjsjp/article/details/80498843