HDFS支持很多Shell命令,例如hadoop fs
和hdfs dfs
都是HDFS最常用的Shell命令,两者功能和用法相同,都可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。
在使用HDFS的Shell命令时最好配置一下PATH变量,因为每次输入命令都带上路径着实很麻烦,如何PATH变量请参照:Linux系统Hadoop伪分布式模式配置第九条。
因为hadoop fs
和hdfs dfs
两个命令等同,所以在此只列出hadoop fs
命令的常用操作:
命令 | 含义 |
---|---|
hadoop fs | 显示hadoop fs命令所支持的所有操作 |
hadoop fs -help <command> | 显示command指定的命令的具体用法 |
hadoop fs -ls <path> | 显示path指定的文件的详细信息 |
hadoop fs -ls -R <path> | ls命令的递归版本 |
hadoop fs -cat <path> | 将path指定的文件的内容输出到标准输出(stdout) |
hadoop fs -chgrp [-R] group <path> | 将path指定的文件所属的组改为group,使用-R对path指定的文件夹内的文件进行递归操作,这个命令只适用于超级用户 |
hadoop fs -chown [-R] [owner] [: [group]] <path> | 改变path指定的文件的拥有者,-R用于递归改变文件夹内的文件的拥有者,这个命令只适用于超级用户 |
hadoop fs -chmod [-R] <mode> <path> | 将path指定的文件的权限更改为mode,这个命令只适用于超级用户和文件的所有者 |
hadoop fs -tail [-f] <path> | 将path指定的文件最后1KB的内容输出到标准输出(stdout)上,-f选项用于持续检测新添加到文件中的内容 |
hadoop fs -stat [format] <path> | 以指定的格式返回path指定的文件的相关信息,当不指定format的时候,返回文件path的创建日期 |
hadoop fs -touchz <path> | 创建一个path指定的空文件 |
hadoop fs -mkdir [-p] <paths> | 创建paths指定的一个或多个文件夹,-p 选项用于递归创建子文件夹 |
hadoop fs -copyFromLocal <localsrc> <dst> | 将本地源文件localsrc复制到路径dst指定的文件或文件夹中 |
hadoop fs -copyToLocal [-ignorecrc] [-crc] <target> <localdst> | 将目标文件target复制到本地文件或文件夹localdst中,可用-ignorecre选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息 |
hadoop fs -cp <src> <dst> | 将文件从源路径src复制到目标路径dst |
hadoop fs -du <path> | 显示path指定的文件或文件夹中所有文件的大小 |
hadoop fs -expunge | 清空回收站 |
hadoop fs -get [-ignorecrc] [-crc] <src> <localdst> | 复制src指定的文件到本地文件系统localdst指定的文件或文件夹,可用-ignorecrc选项复制CRC校验失败的文件,使用-crc选项复制文件以及CRC信息 |
hadoop fs -getmerge [-nl] <src> <localdst> | 对src指定的源目录中的所有文件进行合并,写入localdst指定的本地文件,-nl 是可选的,用于指定在每个文件结尾添加一个换行符 |
hadoop fs -put <localsrc> <dst> | 从本地文件系统中复制localsrc指定的单个或多个源文件到dst指定的目标文件系统中,也支持从标准输入(stdin)中读取输入写入目标文件系统 |
hadoop fs -moveFromLocal <localsrc> <dst> | 与put命令功能相同,但是文件上传结束后会从本地文件系统中删除localsrc指定的文件 |
hadoop fs -mv <src> <dst> | 将文件从源路径src移动到目标路径dst |
hadoop fs -rm <path> | 删除path指定的文件 |
hadoop fs -rm -r <path> | 删除path指定的文件夹及其下的所有文件,-r选项表示递归删除子目录 |
hadoop fs -setrep [-R] <path> | 改变path指定的文件的副本系数,-R选项用于递归改变目录下所有文件的副本系数 |
hadoop fs -test -[ezd] <path> | 检查path指定的文件或文件夹的相关信息,不同选项的作用如下:-e检查文件是否存在,如果存在则返回0,否则返回1;-z检查文件是否是0字节,如果是则返回0,否则返回1;-d检查路径是否是个目录,如果是则则返回1,否则返回0 |
hadoop fs -text <path> | 将path指定的文件输出为文本格式,文件的格式允许是zip和TextRecordInputStream等 |