本事例其实和使用hdfs FileSystem API差不多,FileSystem API也是通过解释成URL在hdfs上面执行的,性质相同,但是实际中用 的fFileSystem会多一点,源码如下:
package org.dragon.hadoop.hdfs;import java.io.IOException;import java.io.InputStream;import java.net.URL;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.apache.hadoop.io.IOUtils;import org.junit.Test;/** * HDFS API URL 方式操作 * @author ZhuXY * */public class HDFSUrlTest { //让java程序识别HDFS 的URL 通过静态代码库加载 static{ URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory()); //选apache的 } //查看文件的内容 @Test public void testRead() throws Exception,IOException{ InputStream inputStream =null; //文件路径 String fileUrlString="hdfs://hadoop-master:9000/wc/input/core-site.xml"; try { //获取文件输入流 inputStream=new URL(fileUrlString).openStream(); //将文件内容读取出来,打印到控制台 IOUtils.copyBytes(inputStream, System.out, 4096, false); } finally{ IOUtils.closeStream(inputStream); } }}