HDFS API 文件读写代码演示
Posted 曹军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS API 文件读写代码演示相关的知识,希望对你有一定的参考价值。
一:准备工作
1.新建class类
2.开启HDFS服务
3.将配置文件拷贝进resources路径
方便了Configuration的读取配置。
二:读出HDFS文件系统中的文件到控制台
4.读出在路径中的文件,显示在控制台上
5.分别解析,获取文件系统(两种方式)
(方式一)
(方式二)
这种方式不需要复制配置文件进resources,但是这种被写死了。
6.分别解析,写入流
7.优化readFile
三:把文件上传到HDFS上,即为WriteFile
注意点:fileName="user/beifeng/wc.input",加上wc.input
四:完整源代码
1 package com.senior.hdfs; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 7 import org.apache.hadoop.conf.Configuration; 8 import org.apache.hadoop.fs.FSDataInputStream; 9 import org.apache.hadoop.fs.FSDataOutputStream; 10 import org.apache.hadoop.fs.FileSystem; 11 import org.apache.hadoop.fs.Path; 12 import org.apache.hadoop.io.IOUtils; 13 14 public class HDFSApp { 15 16 public static FileSystem getFileSystem() throws Exception{ 17 Configuration configuration=new Configuration(); 18 FileSystem fileSystem=FileSystem.get(configuration); 19 return fileSystem; 20 } 21 //read 22 public static void read() throws Exception{ 23 FileSystem fileSystem=getFileSystem(); 24 String fileName="/user/beifeng/mapreduce/wordcount/input/wc.input"; 25 Path path=new Path(fileName); 26 FSDataInputStream inStream=fileSystem.open(path); 27 try{ 28 IOUtils.copyBytes(inStream, System.out, 4096, false); 29 }catch(Exception e){ 30 e.printStackTrace(); 31 } 32 33 } 34 //write 35 public static void write() throws Exception{ 36 FileSystem fileSystem=getFileSystem(); 37 //output fileName 38 String outputFileName="/opt/datas/wc.input"; 39 //input fileName 40 String inputFileNmae="/user/beifeng/mapreduce/wordcount/input2/wc.input"; 41 Path path=new Path(inputFileNmae); 42 FSDataOutputStream outStream=fileSystem.create(path); 43 FileInputStream inStream=new FileInputStream(new File(outputFileName)); 44 try{ 45 IOUtils.copyBytes(inStream, outStream, 4096, false); 46 }catch(Exception e){ 47 e.printStackTrace(); 48 }finally{ 49 IOUtils.closeStream(inStream); 50 IOUtils.closeStream(outStream); 51 } 52 53 } 54 public static void main(String[] args) throws Exception { 55 // read(); 56 write(); 57 58 } 59 60 }
以上是关于HDFS API 文件读写代码演示的主要内容,如果未能解决你的问题,请参考以下文章