使用Java API查看HDFS文件內容


 1 package com.imooc.bigdata.hadoop.hdfs;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.fs.FSDataInputStream;
 5 import org.apache.hadoop.fs.FileSystem;
 6 import org.apache.hadoop.fs.Path;
 7 import org.apache.hadoop.io.IOUtils;
 8 import org.junit.After;
 9 import org.junit.Before;
10 import org.junit.Test;
11 
12 import java.net.URI;
13 
14 /**
15  * 使用Java API操作HDFS文件系統
16  *
17  * 因為是放在test下面,所以最好使用單元測試的方式
18  * 在pom中引入的jUnit單元測試的方式
19  * 單元測試有兩個方法:(1)在單元測試之前進行;(2)在單元測試之后進行
20  *
21  * 關鍵點:
22  * 1)創建Configuration
23  * 2)獲取FileSystem
24  * 3)剩下的是HDFS API的操作
25  */
26 
27 public class HDFSApp {
28 
29     public static final String HDFS_PATH = "hdfs://hadoop000:8020";
30     //Configuration、FileSystem是每一個方法使用之前必須構建的
31     Configuration configuration = null;
32     FileSystem fileSystem = null;
33 
34     @Before
35     public void setup() throws Exception{
36         System.out.println("-----setup-----");
37 
38         configuration = new Configuration();
39         /*
40          *構造一個訪問指定HDFS系統的客戶端對象
41          * 第一個參數:HDFS的URI
42          * 第二個參數:客戶端指定的配置參數
43          * 第三個參數:客戶的用戶名
44          */
45         fileSystem = FileSystem.get(new URI("hdfs://hadoop000:8020"), configuration, "hadoop");
46     }
47 
48     /*
49  * 查看HDFS文件夾內容 50      */
51  @Test 52     public void text()throws Exception{ 53         FSDataInputStream in = fileSystem.open(new Path("/cdh_version.properties")); 54         //IOUtils(org.apache.hadoop.io)
55         IOUtils.copyBytes(in, System.out, 1024); 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