紧接着《Hadoop入门学习笔记---part3》中的继续了解如何用java在程序中操做HDFS。html
众所周知,对文件的操做无非是建立,查看,下载,删除。下面咱们就开始应用java程序进行操做,前提是按照《Hadoop入门学习笔记---part2》中的已经在虚拟机中搭建好了Hadoop伪分布环境;而且肯定如今linux操做系统中hadoop的几个进程已经彻底启动了。java
好了,废话很少说!实际的例子走起。linux
在myeclipse中新建一个java工程:浏览器
在项目工程中新建一个lib包用于存放项目须要的相关jar包,关于build path我就很少说了。相关jar包以下:app
1. 建立文件:eclipse
public static final String HDFS_PATH = "hdfs://hadoop:9000/hello"; //建立文件的url public static void main(String[] args) { try { URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory()); final URL url = new URL(HDFS_PATH); final InputStream in = url.openStream(); IOUtils.copyBytes(in, System.out, 1024, true); } catch (Exception e) { e.printStackTrace(); }
在浏览器中查看效果:输入http://hadoop:50070/ 而后点击Browse the filesystem 就能够查看到在HDFS根目录下刚刚新建的那个文件了。oop
2. 上传文件:首先应该明白的就是上传首先须要在HDFS中建立,而后以流的形式写入。学习
public static final String HDFS_PATH = "hdfs://hadoop:9000/"; final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration()); // 上传文件 final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH)); final FileInputStream in = new FileInputStream("H:/redTestFileForHadoop"); IOUtils.copyBytes(in, out, 1024, true);
效果以下:直接在浏览器中打开。网站
(上传1)ui
---------------------------------------分割线---------------------------------------------------------
(上传2)
3. 下载文件,直接输出到控制台,也能够单独将这个写入到一个文件里面,这里就不介绍了,代码以下:
public static final String HDFS_PATH = "hdfs://hadoop:9000/"; final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration()); // 下载文件 final FSDataInputStream in = fileSystem.open(new Path(FILE_PATH)); IOUtils.copyBytes(in, System.out,1024, true);
效果图以下:
4. 删除文件:
public static final String HDFS_PATH = "hdfs://hadoop:9000/"; final FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration()); fileSystem.delete(new Path(FILE_PATH), true);
效果就不用说了,直接在浏览器中看不到这个文件了。
不少时候看起来很复杂的东西实际上是本身内心面的承认,实际上也没有想象中的那么难!好好体验一下吧。瞬间感受这个和咱们日常用到的云网盘有几分同样了。哈哈,不妨作一个属于本身的云网盘。绝对能够的!
做者:itRed 邮箱:it_red@sina.com 博客:http://www.cnblogs.com/itred 我的网站:http://wangxingyu.jd-app.com ***版权声明:本文版权归做者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面赞成,将其做为他用,本人保留追究责任的全部权利。