1. 程式人生 > 其它 >使用Java API之帶進度條上傳大檔案(我覺得不重要)

使用Java API之帶進度條上傳大檔案(我覺得不重要)

 1 package com.imooc.bigdata.hadoop.hdfs;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.fs.FSDataOutputStream;
 5 import org.apache.hadoop.fs.FileSystem;
 6 import org.apache.hadoop.fs.Path;
 7 import org.apache.hadoop.io.IOUtils;
 8 import org.apache.hadoop.util.Progress;
9 import org.apache.hadoop.util.Progressable; 10 import org.junit.After; 11 import org.junit.Before; 12 import org.junit.Test; 13 14 import java.io.BufferedInputStream; 15 import java.io.File; 16 import java.io.FileInputStream; 17 import java.io.InputStream; 18 import java.net.URI; 19 20 /** 21 * 使用Java API操作HDFS檔案系統
22 * 23 * 因為是放在test下面,所以最好使用單元測試的方式 24 * 在pom中引入的jUnit單元測試的方式 25 * 單元測試有兩個方法:(1)在單元測試之前進行;(2)在單元測試之後進行 26 * 27 * 關鍵點: 28 * 1)建立Configuration 29 * 2)獲取FileSystem 30 * 3)剩下的是HDFS API的操作 31 */ 32 33 public class HDFSApp { 34 35 public static final String HDFS_PATH = "hdfs://hadoop000:8020"; 36 //
Configuration、FileSystem是每一個方法使用之前必須構建的 37 Configuration configuration = null; 38 FileSystem fileSystem = null; 39 40 @Before 41 public void setup() throws Exception{ 42 System.out.println("-----setup-----"); 43 configuration = new Configuration(); 44 configuration.set("dfs.replication", "1"); 45 /* 46 *構造一個訪問指定HDFS系統的客戶端物件 47 * 第一個引數:HDFS的URI 48 * 第二個引數:客戶端指定的配置引數 49 * 第三個引數:客戶的使用者名稱 50 */ 51 fileSystem = FileSystem.get(new URI("hdfs://hadoop000:8020"), configuration, "hadoop"); 52 } 53 54 /* 55 * 拷貝本地主機檔案至HDFS檔案系統 56 */ 57 @Test 58 public void copyFromLocalBigFile() throws Exception{ 59 60 InputStream in = new BufferedInputStream(new FileInputStream(new File("G:/BaiduNetdiskDownload/jdk-8u152-windows-x64.exe"))); 61 62 FSDataOutputStream out = fileSystem.create(new Path("/hdfsApi/test/jdk.tgz"), 63 new Progressable(){ 64 public void progress(){ 65 System.out.print("1"); 66 } 67 }); 68 69 IOUtils.copyBytes(in, out,4096); 70 } 71 72 @After 73 public void tearDown(){ 74 System.out.println("-----tearDown-----"); 75 76 //置空 77 configuration = null; 78 fileSystem = null; 79 } 80 }