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