一、 实验目的
本次实验通过使用hadoop的hdfs以及Java编程,学习分布式文件系统的布局以及如何查找某个文件是否在该文件系统中,理解分布式文件系统,掌握分布式文件系统的结构,怎样查找文件该文件系统以及创建新的文件或文件夹。
二、 实验内容
利用Hadoop的Java API检测伪分布式文件系统HDFS上是否存在某个文件
三、 实验思路、结构
先在某文件夹下创建文件夹,然后再查看该文件夹下的内容,然后再把一些主机上的文件复制到分布式文件系统中,显示这些复制过来的文件的目录以及内容,最后再用Elipse编程查看在该分布式文件系统中是否存在某个文件。
四、 实验结果
检索文件即查阅HDFS中的文件内容,可以使用hadoop中的cat命令。
由于这三个文件中没有写内容,故cat没有输出。
然后可以通过浏览器查看文件:
在Ubuntu上安装好Eclipse后,运行代码:
1 import org.apache.hadoop.conf.Configuration; 2 import org.apache.hadoop.fs.FileSystem; 3 import org.apache.hadoop.fs.Path; 4 5 public class Chapter3 6 { 7 public static void main(String[] args) 8 { 9 try 10 { 11 String filename = "hdfs://localhost:9000/user/hadoop/input.txt"; 12 Configuration conf = new Configuration(); 13 FileSystem fs = FileSystem.get(conf); 14 if(fs.exists(new Path(filename))) 15 { 16 System.out.println("this file exists"); 17 } 18 else 19 { 20 System.out.println("this file doesn't exist"); 21 } 22 } 23 catch(Exception e) 24 { 25 e.printStackTrace(); 26 } 27 } 28 }
由于HDFS上没有存在input.txt文件,故得到该程序的输出结果为:
this file doesn't exist
一、 心得体会
练习使用了Hadoop提供的关于HDFS在Linux操作系统上进行文件操作的常用Shell命令以及Java API。
HDFS有很多Shell命令,fs命令:查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。Hadoop中有三种Shell命令方式:hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS 文件系统;hadoop dfs只能适用于HDFS文件系统;hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统。