1 package day01;
2
3 import org.apache.hadoop.conf.Configuration;
4 import org.apache.hadoop.fs.*;
5
6 import java.io.*;
7 import java.net.URI;
8
9 /**
10 * @autho 通过idea进行hadoop测试增删改查
11 * @create 2019-09-16 14:15
12 **/
13 public class HadoopClients {
14
15 static FileSystem fileSystem = null;
16
17 public static void main(String[] args) throws Exception {
18 /*mkdir();*/
19
20 /*mv();*/
21
22 /* rm();*/
23
24 /*up();*/
25
26 /*see();*/
27
28 readWrite();
29 }
30
31 //静态代码块
32
33 static {
34 Configuration conf = new Configuration();
35 //hadoop的链接对象
36 try {
37 fileSystem = FileSystem.get(new URI("hdfs://hadoop01:9000"),conf,"root");
38 } catch (Exception e) {
39 e.printStackTrace();
40 }
41 }
42 //创建目录
43 public static void mkdir() throws Exception{
44 fileSystem.mkdirs(new Path("/test1"));
45 System.out.println("创建成功!!");
46 }
47
48 //修改目录
49 public static void mv() throws Exception{
50 fileSystem.rename(new Path("/test1"),new Path("/test2"));
51 System.out.println("修改成功!!");
52 }
53
54 //删除目录
55 public static void rm() throws Exception{
56 fileSystem.delete(new Path("/test2"),true);
57 System.out.println("删除成功!!");
58 }
59
60 //上传数据
61 public static void up() throws Exception{
62 fileSystem.copyFromLocalFile(new Path("B:\wc.txt"),new Path("/beida"));
63 System.out.println("上传成功!!");
64 }
65
66 //查看目录
67 public static void see() throws Exception{
68 RemoteIterator<LocatedFileStatus> iterator = fileSystem.listFiles(new Path("/"), true);
69 //迭代器取数据
70 while (iterator.hasNext()){
71 LocatedFileStatus next = iterator.next();
72 System.out.println(next.getPath());
73 System.out.println(next.getLen());
74 System.out.println(next.getBlockSize());
75 System.out.println(next.getReplication());
76 System.out.println("-------------------------------------");
77 }
78 }
79
80 //模拟数据的读写
81 public static void readWrite() throws Exception{
82
83 FSDataInputStream open = fileSystem.open(new Path("/beida/wc.txt"));
84
85 FSDataOutputStream create = fileSystem.create(new Path("/result.txt"));
86
87 //要把IO流数据转化为String类型
88 BufferedReader br = new BufferedReader(new InputStreamReader(open));
89 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(create));
90 //处理数据
91 String line = null;
92 //br.readLine!==null是判断有没有数据
93 while ((line=br.readLine())!=null){
94 String[] words = line.split(",");
95 //数据写出去
96 bw.write(line);
97 bw.newLine();
98 bw.flush();
99 }
100 System.out.println("写出成功!!");
101 //关闭
102 br.close();
103 bw.close();
104 }
105 }