HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件)。HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:Shell接口和Java API 接口,对HDFS里面的文件进行操作,具体每个Block放在哪台DataNode上面,对于开发者来说是透明的。
下面将介绍通过Shell接口对HDFS进行操作,HDFS处理文件的命令和Linux命令基本相同,这里区分大小写
目录
1、shell操作单个HDFS集群
2、shell操作多个HDFS集群
3、hadoop管理员其他常见shel操作
1、shell 操作单个HDFS集群
下面列举出几个常用场景下的命令
创建文件夹
HDFS上的文件目录结构类似Linux,根目录使用”/”表示。
下面的命令将在/middle(已存在)目录下建立目录weibo
[hadoop@ljc hadoop]$ hadoop fs -mkdir /middle/weibo
效果如下:
上传文件weibo.txt到weibo目录下
[hadoop@ljc ~]$ hadoop fs -put weibo.txt /middle/weibo/
效果如下:
还可以使用 -copyFromLocal参数。
[hadoop@ljc ~]$ hadoop fs -copyFromLocal weibo.txt /middle/weibo/
查看weibo.txt文件内容。
[hadoop@ljc ~]$ hadoop fs -text /middle/weibo/weibo.txt
效果如下:
还可以用 -cat、-tail 参数查看文件的内容。但是对于压缩的结果文件只能用 -text 参数来查看,否则是乱码。
[hadoop@ljc ~]$ hadoop fs -cat /middle/weibo/weibo.txt
[hadoop@ljc ~]$ hadoop fs -tail /middle/weibo/weibo.txt
通过终端向”/middle/weibo/weibo.txt”中输入内容
[hadoop@ljc ~]$ hadoop fs -appendToFile - /middle/weibo/weibo.txt
如下所示: