緊接着《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 ***版權聲明:本文版權歸做者和博客園共有,歡迎轉載,但請在文章顯眼位置標明文章出處。未經本人書面贊成,將其做爲他用,本人保留追究責任的全部權利。