使用Java API創建HDFS文件並寫入內容


 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.junit.After;
 8 import org.junit.Before;
 9 import org.junit.Test;
10 
11 import java.net.URI;
12 
13 /**
14  * 使用Java API操作HDFS文件系統
15  *
16  * 因為是放在test下面,所以最好使用單元測試的方式
17  * 在pom中引入的jUnit單元測試的方式
18  * 單元測試有兩個方法:(1)在單元測試之前進行;(2)在單元測試之后進行
19  *
20  * 關鍵點:
21  * 1)創建Configuration
22  * 2)獲取FileSystem
23  * 3)剩下的是HDFS API的操作
24  */
25 
26 public class HDFSApp {
27 
28     public static final String HDFS_PATH = "hdfs://hadoop000:8020";
29     //Configuration、FileSystem是每一個方法使用之前必須構建的
30     Configuration configuration = null;
31     FileSystem fileSystem = null;
32 
33     @Before
34     public void setup() throws Exception{
35         System.out.println("-----setup-----");
36 
37         configuration = new Configuration();
38         /*
39          *構造一個訪問指定HDFS系統的客戶端對象
40          * 第一個參數:HDFS的URI
41          * 第二個參數:客戶端指定的配置參數
42          * 第三個參數:客戶的用戶名
43          */
44         fileSystem = FileSystem.get(new URI("hdfs://hadoop000:8020"), configuration, "hadoop");
45     }
46 
47     /*
48  * 創建HDFS文件並寫入內容 49      */
50  @Test 51     public void create()throws Exception{ 52         FSDataOutputStream out = fileSystem.create(new Path("/hdfsApi/test/t.txt")); 53         out.writeUTF("hello JieQiong"); 54         out.flush();   //立即將緩沖區的數據輸出到接收方
55  out.close(); 56  } 57 
58     @After
59     public void tearDown(){
60         System.out.println("-----tearDown-----");
61 
62         //置空
63         configuration = null;
64         fileSystem = null;
65     }
66 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM