基本格式: hadoop fs -cmd [args]
1 Query
- 显示命令的帮助信息
# hadoop fs -help [cmd]
- 查看HDFS文件及目录
-ls(r)
//显示当前目录下所有文件
# hadoop fs -ls /
# hadoop fs -ls -R /
(递归查看)
- 显示文件内容 in 终端
# hadoop fs -cat <src>
# hadoop fs -text <src>
(将文本文件或某些格式的非文本文件通过文本格式输出)
# hadoop fs -tail <hdfs file>
(在标准输出中显示文件末尾的1KB数据)
- 显示文件(目录)存储大小
# hadoop fs -du(s) <path>
//显示目录中所有文件大小
# hadoop fs -du -s <hdsf-path>
//显示hdfs对应路径下所有文件和的大小
# hadoop fs -du -h <hdsf-path>
显示hdfs对应路径下每个文件夹和文件的大小,文件的大小用方便阅读的形式表示。例如用64M代替67108864
- 显示目录中文件数量
# hadoop fs -count[-q] <path>
2 Manipulation
2.1 上传/移动/下载 [本地文件系统 ~ HDFS文件系统]
- 上传本地文件到HDFS文件系统的指定目录中
# hadoop fs -put ./local_test.txt /hdfs_test
或
#hadoop fs -copyFromLocal ./local_test.txt /hdfs_test
- 移动本地文件到HDFS文件系统的指定目录中
# hadoop fs -moveFromLocal ./local_test.txt /hdfs_test
- 下载HDFS文件系统的指定目录到本地路径下
# hadoop fs -get /hdfs_test/test.txt .
或
# hadoop fs -getToLocal /hdfs_test/test.txt .
hadoop fs -get [-ignoreCrc]
//复制文件到本地,可忽略crc校验
hadoop fs -getmerge//将源目录中的所有文件排序合并到1个本地文件中。若文件不存在时会自动创建;若文件存在时会覆盖里面的内容
hadoop fs -getmerge -nl//加上 -nl
后,合并到local file中的hdfs文件之间会空出一行
- 移动HDFS文件系统的指定目录到本地文件中
# hadoop fs -moveToLocal <hdfs-src> <localdst>
2.2 数据操纵
- 拷贝/移动/删除 文件(夹)
# hadoop fs -cp /test/test.txt /test1
-cp <src-dir> <dst-dir>
(支持同时复制多个文件到目标目录)
# hadoop distcp hdfs://master1:8020/foo/bar hdfs://master2:8020/bar/foo
(两个haddop hdfs集群之间拷贝数据)
# hadoop fs -rm /test1/test.txt [删除文件]
# hadoop fs -rmr /test1/ [文件夹]
# hadoop fs -mv /test/test.txt /test1
-mv <src-dir> <dest-dir>
2.3 目录操纵
- 创建文件目录
# hadoop fs -mkdir /test
(在根目录创建一个目录test)