FS Shell命令
HDFS命令基本格式
- hadoop fs -cmd args
- hdfs dfs -cmd args
cat
hadoop fs -cat URI [URI .....]
将路径指定文件的内容输出到stdout。
示例
hadoop fs -cat hdfs://192.168.17.128:9000/opt/learning/file.txt
hadoop fs -cat /opt/learning/file.txt
ls命令
hadoop fs -ls /
列出 hdfs文件系统根目录下的目录和文件
hadoop fs -ls -R /
列出hdfs文件系统所有的目录和文件
hadoop fs -ls -R /opt/learning/
列出hdfs文件系统在/opt/learning目录下的子目录和文件。
cp命令
``` hadoop fs -cp URI [URI …] dest ````
将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
du命令
hadoop fs -du URI [URI.....]
显示目录所有文件的大小,或者当只指定一个文件时,显示此文件的大小
get
hadoop fs -get [-ignorecrc] < hdfs file > < local file or dir >
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。
mkdir
hadoop fs -mkdir < hdfs path >
只能一级一级的建目录,父目录不存在的话使用这个命令会报错
hadoop fs -mkdir -p < hdfs path >
所创建的目录如果父目录不存在就创建该父目录。
put
用法:
hadoop fs -put < localsrc > ... < dst >
从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。
示例:
hadoop fs -put localfile /user/hadoop/hadoopfile
复制本地文件 localfile内容到hadoop文件系统“/usr/hadoop/hadoopfile”文件中。hdfs file的父目录一定要存在,否则命令不执行。
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
复制本地文件localfile1、localFile2到hdfs文件系统“/user/hadoop/hadoopdir”目录下。/user/hadoop/hadoopdir目录一定要存在,否则命令不会执行。
hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
复制本地文件localfile到host:port对应的hdfs文件系统下的“hadoop/hadoopfile”文件里。
hadoop fs -put - < hdsf file>
从键盘读取输入到hdfs file中,按ctrl+c结束输入,hdfs file不能存在,否则会提示“file exists”。
rm
hadoop fs -rm < hdfs file >
hadoop fs -rm -r <hdfs dir>
每次可以删除多个文件或目录
tail
hadoop fs -tail [-f] URI
与unix tail命令一样。
count 命令
hadoop fs -count < hdfs path >
统计hdfs对应路径下的目录个数,文件个数,文件总计大小。
显示为目录个数,文件个数,文件总计大小,输入路径。
getmerge
hadoop fs -getmerge < hdfs dir > < local file >
将hdfs指定目录下所有文件排序后合并到local指定的文件中,文件不存在时会自动创建,文件存在时会覆盖里面的内容。
hadoop fs -germerge -nl < hdfs dir > < local file >
加上nl后,合并到local file中的hdfs文件之间会空出一行。
mv命令
hadoops fs -mv < hdfs file > < hdfs file >
将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
** 示例:**
hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1