HDFS文件系统是Hadoop的分布式文件系统,Hadoop的API中提供了一些方法,以便在编程的时候向HDFS中写入和读出文件。
下面通过一个例子来说明:
public static void readAndWrite(){ Configuration conf = new Configuration();//获得conf对象,以便能够获得配置文件的信息 FileSystem fs; try { fs = FileSystem.get( URI.create(conf.get("fs.default.name")), conf); //读取HDFS系统中的一个文件 InputStream input =fs.open(new Path("/user/root/urlLib/ftpurl")); byte [] b= new byte[1024]; input.read(b, 0,b.length); String s =new String(b); system.out.println(s); input.close(); //将刚刚读出来的字符串再写入到HDFS系统中 OutputStream out = fs.create(new Path(“/user/root/urlLib/ftpurl2”), true); out.write(s.getBytes()); out.flush(); out.close(); //将user/root/urlLib/ftpurl这个文件删除 fs.delete(new Path("/user/root/urlLib/ftpurl") , true);
} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } |
这个过程和普通的文件读写类似,唯一不同的就是通过Hadoop中FileSystem来获取读写流,以便在读写的时候能够将文件写入到HDFS系统中。