使用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