格式
调用文件系统的Shell命令为: /bin/hadoop fs <args>
/bin/hdfs dfs <args>
- 命令参数为URL路径,HDFS目录表示为hdfs://namenode:namenodeport/parent/child (在core-site.xml里配置了默认值,可以简写为/parent/child),本地文件系统为file://
- 大多数FS Shell命令的行为和对应的Unix Shell命令类似,出错信息会输出到stderr,其他信息输出到stdout。
1、put
上传(一个或多个)文件(夹)到HDFS;也可以读取标准输入到HDFS
hadoop fs -put src dst
成功返回0,失败返回1
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
#从标准输入中读取输入
hadoop fs -put - hdfs://host:port/hadoop/hadoopfile
相似命令: copyFromLocal 限定源路径是一个本地文件
2、get
下载文件到本地
hadoop fs -get [-ignorecre] [-crc] <src> <loacldst>
dst已存在会报错
成功返回0,失败返回1
相似命令:copyToLocal 限定目标路径是一个本地文件
3、cat
将(一个或多个)文件内容输出到stdout
hadoop fs -cat URL [URI]
4、cp mv
hadoop fs -cp URL dst
拷贝/移动文件,当源路径有好几个时,目标路径必须是一个目录
5、du df
du 查看文件大小
df 查看磁盘大小
参数:-h 加单位,易读 -s 总计
6、清空回收站
hadoop fs -expunge
7、getmerge
将源目录下的所有文件连接成一个本地目标文件
hadoop fs -getmerge <src> <localdst> [addnl]
addnl是可选的,用于指定在每个文件结尾添加一个换行符
8、ls ls -R
9、mkdir
会创建路径中的各级父目录
10、rm rm -R
删除非空目录和文件
11、setrep [-R]
改变一个文件的副本系数。-R选项用于递归改变目录下所有文件的副本系数。
hadoop fs -setrep -w 3 -R /user/hadoop/dir1
-w 会等待副本创建完成
12、tail
将文件尾部1K字节的内容输出到stdout。支持-f选项
13、test
hadoop fs -test -[ezd] URI
选项:
-e 检查文件是否存在。如果存在则返回0。
-z 检查文件是否是0字节。如果是则返回0。
-d 如果路径是个目录,则返回1,否则返回0
14、text
hadoop fs -text
将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream
15、touchz
hadoop fs -touchz URI [URI …]
创建一个0字节的空文件