hdfs是一个分布式文件系统,所以在hadoop中,我们可以直接在命令行里面像linux操作文件一样的方式操作hdfs系统上的文件。下面我们来分别演示下。
特别说明
1、在操作hadoop的时候我们可以使用两种命令,分别是hadoop fs -这样的命令,例如:
bin/hadoop fs -ls /
上面的命令就是查看hdfs系统上根目录的文件列表
还有一种命令是
./hdfs dfs -ls /
这个命令和第一个命令的效果是一样的,都是查看hdfs系统上根目录的文件列表。两者都可以用,个人喜欢第一种。
常用命令列表
1)列举某个目录下的文件列表
./hadoop fs -ls /user 语法如下: ./hadoop fs -ls URI
2)递归列举某个文件夹下面的所有文件
./hadoop fs -lsr /user 语法如下: ./hadoop fs -lsr URI
3)创建某个文件夹
./hadoop fs -mkdir -p /home/pubserver/tools 语法如下: ./hadoop fs -mkdir [-p] <paths>
4)上传某个文件到指定的文件夹
./hadoop fs -put users.txt /home/pubserver/tools/ 语法如下: ./hadoop fs -put <localsrc > ... <dst>
5)把本地某些文件的内容放入hdfs指定文件里面去
./hadoop fs -appendToFile user.txt /home/pubserver/tools/users.txt 语法如下: ./hadoop fs -appendToFile <localsrc> ... <dst>
6)查看某个文件的内容
./hadoop fs -cat /home/pubserver/tools/users.txt 语法如下: ./hadoop fs -cat URI [uri ...]
7)下载某个文件
./hadoop fs -get /home/pubserver/tools/users.txt users.txt 语法如下: ./hadoop fs -get [-ignorecrc ] [-crc] <src> <localdst>
8)合并下载hdfs文件系统中某个目录的多个文件
./hadoop fs -getmerge /home/pubserver/tools aaa.txt 语法如下: ./hadoop fs -getmerge <src> <localdst>
9)把某个文件移动到其他目录下
./hadoop fs -mv /home/pubserver/tools/users.txt /home/pubserver/users/ 语法如下: ./hadoop fs -mv URI <destURI>
10)删除某个文件
./hadoop fs -rmr /home/pubserver/users/users.txt 语法如下: ./hadoop fs -rm [-r] 【-skipTrash】 URI 【URI 。。。】
11)拷贝某个文件到其他目录下
./hadoop fs -cp /home/pubserver/users/users.txt /home/pubserver/tools/ 语法如下: ./hadoop fs -cp URI [URI ...] <dest>
12)查看某个文件的末尾内容
./hadoop fs -tail -f /home/pubserver/tools/users.txt 语法如下: ./hadoop fs -tail path
13)更改文件的权限
fs -chmod -R 777 /home/pubserver/users//runa.sh 语法如下: ./hadoop fs -chmod [-R] URI[URI ...]
14)更改文件所属用户和用户组
./hadoop fs -chown -R hadoop.hadoop /home/pubserver/users/runa.sh 语法如下: ./hadoop fs -chmod [-R] URI[URI ...]
15)统计某个文件夹下可用的空间信息
./hadoop fs -df -h /home/ 语法如下: ./hadoop fs -df -h path
16)统计某个文件夹下面的文件大小
./hadoop fs -du -s -h /home/ 语法如下: ./hadoop fs -du -s -h path
17)统计某个文件夹下面的文件个数
./hadoop fs -count /home/pubserver/users/ 语法如下: ./hadoop fs -count path
18)更改某个文件的副本数量
./hadoop fs -setrep 5 /home/pubserver/users/users.txt 语法如下: ./hadoop fs -setrep num filePath
备注:
1、这里可以动态更改某个文件的副本数量,无论设置多少都可以成功,但是数量不能超过datanode的节点数量,假设datanode的节点数量是3个,那么我们设置为5个,最终这里的副本他还是只有3个。
19)清理hdfs垃圾回收站的文件
./hadoop fs -expunge
备注:
1、使用这里的时候,需要在hadoop的安装配置里面配置垃圾回收站才可以。
还没有评论,来说两句吧...