1、概述
Hadoop文件系统(FS)提供了各种shell命令,与shell命令类似,可用于同分布式文件系统(HDFS)进行交互,以管理HDFS集群中的文件和数据。
2、Hadoop FS常用命令
(1)创建目录
用法:
hadoop fs -mkdir <paths>
示例:
创建单个目录:
hadoop fs -mkdir /home/myfile/dir1
创建多目录:
hadoop fs -mkdir /home/myfile/dir1 /home/myfile/dir2
(2)查看目录
用法:
hadoop fs -ls <paths>
示例:
与shell中ls类似:
hadoop fs -ls /home/myfile/
注:hadoop fs -ls会打印出目录统计信息和详细信息,对文件批处理需注意格式。
(3)上传文件
将一个或多个文件从本地系统复制到Hadoop文件系统。
用法:
hadoop fs -put <local_files> ... <hdfs_path>
示例:
hadoop fs -put Desktop/test.sh /home/myfile/dir1/
(4)下载文件
将文件从HDFS下载到本地文件系统。
用法:
hadoop fs -get <hdfs_paths> <local_path>
示例:
hadoop fs -get /home/myfile/test.sh Downloads/
(5)查看文件
用法:
hadoop fs -cat <paths>
示例:
hadoop fs -cat /home/myfile/test.sh
(6)复制文件
用法:
hadoop fs -cp <source_path> ... <destination_path>
示例:
hadoop fs -cp /home/myfile/test.sh /home/myfile/dir
(7)移动文件
用法:
hadoop fs -mv <source_path> <destination_path>
示例:
hadoop fs -mv /home/myfile/test.sh /home/myfile/dir
(8)删除文件
删除指令有两个选项,-rm和-rm -r
用法:
hadoop fs -rm <path>
示例:
hadoop fs -rm /home/myfile/test.sh
上述命令只会删除给定目录下的文件,如果要删除一个包含文件的目录,类似于shell中的rm,需要使用递归参数-r。
下面是rm的递归操作:
用法:
hadoop fs -rm -r <path>
示例:
hadoop fs -rm -r /home/myfile/dir
(9)查看文件尾部
用法:
hadoop fs -tail <path>
示例:
hadoop fs -tail /home/myfile/test.sh
(10)显示文件总长度
用法:
hadoop fs -du <path>
示例:
hadoop fs -du /home/myfile/test.sh
(11)统计文件数和大小
用法:
hadoop fs -count <path>
示例:
hadoop fs -count /home/myfile
(12)统计文件系统空间的详细信息
用法:
hadoop fs -df <path>
示例:
hadoop fs -df /home/myfile
(13)合并文件
从HDFS拷贝多个文件、合并排序为一个文件到本地文件系统
用法:
hadoop fs –getmerge <src> <localdst>
示例:
hadoop fs –getmerge /user/hduser0011/test /home/myfile/dir