在进行Shell操作之前,我们需要在.bashrc文件中配置环境变量,这样Hadoop命令才可以方便的直接写,而不用写全路径去执行
操作的命令格式
hadoop fs -cmd
cmd:具体的操作,基本上与Linux的命令行相同
例如:HDFS的 ls 命令
hadoop fs -ls /
列出path目录下的内容,包括文件名、权限、所有者、大小、和修改时间
hadoop fs -ls -R /
递归列出多层文件夹的内容
常用的命令
-help
hadoop fs -help [cmd]
显示命令的帮助信息
例如:hadoop fs -help ls
-mkdir
hadoop fs -mkdir [-p]
创建文件夹,-p用于时是否递归创建
例如:hadoop fs -mkdir -p /user1/hadoop
-put
hadoop fs -put
从本地文件系统中复制单个或多个源路径到目标文件系统
例如:hadoop fs -put data.txt /user1/
也支持从标准输入中读取输入写入目标文件系统
例如:hadoop fs -put - /user1/hadoopfile
-cat
hadoop fs -cat URI[URI...]
查看文件内容
例如:hadoop fs -cat /user1/hadoopfile._COPYING_
-get
hadoop fs -get [ignorecrc] [-crc]
复制文件到本地文件
例如:hadoop fs -get /user1/hadoopfile._COPYING_ data1.txt
-rm
hadoop fs -rm URI[URI...]
删除指定的文件,只删除非空目录和文件
例如:hadoop fs -rm /user1/hadoopfile._COPYING_
hadoop fs -rm -r URI[URI...]
递归删除,可以删除有文件的文件夹
例如:hadoop fs -rm -r /user1
-getmerge
hadoop fs -getmerge [-nl]
接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件
-nl 在每个文件的最后增加一个新行
例如:hadoop fs -getmerge /input1 file1.txt
-mv
hadoop fs -mv URI[URI...]
将文件从源路径移动到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录
例如:hadoop fs -mv /user/data.txt /input1
注意:不允许在不同的文件系统间移动文件
-cp
hadoop fs -cp URI[URI...]
将文件从源路径复制到目标路径,这个命令允许有多个源路径,此时目标路径必须是一个目录
例如:hadoop fs -cp /input1/data.txt /user
-du
hadoop fs -du URI[URI...]
显示目录中所有文件的大小
例如:hadoop fs -du /input1
hadoop fs -du -s
显示文件大小
例如:hadoop fs -du -s /input1
-touchz
hadoop fs -touchz URI[URI...]
创建一个0字节的空文件
例如:hadoop fs -touchz /user/file.txt
-stat
hadoop fs -stat URI[URI...]
返回指定路径的统计信息
例如:hadoop fs -stat /input1
-tail
hadoop fs -tail [-f] URI
将文件尾部1K字节的内容输出到stdout,支持 -f 选项,行为和linux中一致
-expunge
hadoop fs -expunge
清空回收站