一:准备工作
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 }
来源:https://www.cnblogs.com/juncaoit/p/5912129.html