大数据学习之HDFS基本API操作(上)06
2021-06-06 11:04
标签:文件路径 name 创建文件夹 print 需要 长度 .net 信息 java 大数据学习之HDFS基本API操作(上)06 标签:文件路径 name 创建文件夹 print 需要 长度 .net 信息 java 原文地址:https://www.cnblogs.com/hidamowang/p/10781139.html 1 package it.dawn.HDFSPra;
2
3 import java.io.FileNotFoundException;
4 import java.io.IOException;
5 import java.net.URI;
6 import java.net.URISyntaxException;
7 import java.util.Arrays;
8
9 import org.apache.hadoop.conf.Configuration;
10 import org.apache.hadoop.fs.FileStatus;
11 import org.apache.hadoop.fs.FileSystem;
12 import org.apache.hadoop.fs.LocatedFileStatus;
13 import org.apache.hadoop.fs.Path;
14 import org.apache.hadoop.fs.RemoteIterator;
15 import org.junit.Before;
16 import org.junit.Test;
17
18 /**
19 * @version 1.0
20 * @author Dawn
21 * @since 2019年4月27日22:42:32
22 *
23 * 注意:1.需要配置hadoop环境
24 * 2.需要编译好的winutil包
25 */
26 public class HdfsClientDemo01 {
27
28 public static FileSystem fs=null;
29 public static String hdfs="hdfs://192.168.40.11:9000";
30
31 //初始化加载
32 @Before
33 public void init() throws IOException, InterruptedException, URISyntaxException
34 {
35 System.setProperty("hadoop.home.dir", "E:\\hadoop2.7.3\\hadoop-2.7.3");
36 // 1.加载配置
37 Configuration conf= new Configuration();
38 // 2.设置副本数 默认3块
39 conf.set("dfs.replication", "2");
40 // 3.设置块大小 默认128m
41 conf.set("dfs.blocksize", "64m");
42 // 4.构造客户端
43 fs=FileSystem.get(new URI(hdfs), conf, "root");
44 }
45
46 /*
47 * 上传文件
48 * hdfs dfs -put /文件名 /hdfs目录
49 */
50 @Test
51 public void hdfsUpData() throws IllegalArgumentException, IOException
52 {
53 //上传文件
54 fs.copyFromLocalFile(new Path("f:/temp/xxx.txt"), new Path("/"));
55 //2.关闭资源
56 fs.close();
57 }
58
59
60 /*
61 * 下载文件
62 * hdfs dfs -get /hdfs文件 /文件目录
63 */
64 @Test
65 public void hdfsDownload() throws IllegalArgumentException, IOException {
66 //下载文件
67 fs.copyToLocalFile(new Path("/xxx.txt"), new Path("f:/"));
68
69 fs.close();
70 }
71
72
73 /*
74 * 1:在hdfs中创建文件夹
75 * hdfs dfs -mkdir /文件名
76 */
77 @Test
78 public void hdfsMkdir() throws IllegalArgumentException, IOException
79 {
80 //1.调用创建文件夹方法
81 fs.mkdirs(new Path("/dawn/ss"));
82 System.out.println("创建成功");
83 //2.关闭资源
84 fs.close();
85 }
86
87 /*
88 * 2:在hdfs中 移动/修改 文件
89 * 相当于Ctrl+x
90 */
91 @Test
92 public void hdfsRename() throws IllegalArgumentException, IOException
93 {
94 //1.调用移动并修改
95 fs.rename(new Path("/test/a.txt"), new Path("/dawn/renamea.txt"));
96 //2.关闭资源
97 fs.close();
98 }
99
100 /*
101 * 3:在hdfs中删除文件夹
102 * hdfs dfs -rm -r /
103 */
104 @Test
105 public void hdfsRm() throws IllegalArgumentException, IOException
106 {
107 //fs.delete(new Path("/hunterhenshuai"));
108 //1.调用删除文件方法 参数1:删除的路径 参数2:是否递归删除
109 fs.delete(new Path("/test"), true);
110 fs.close();
111
112 }
113
114 /*
115 * 4:查询hdfs下制定的目录信息
116 */
117 @Test
118 public void hdfsLs() throws FileNotFoundException, IllegalArgumentException, IOException
119 {
120 //1.调用方法 返回远程迭代器
121 RemoteIterator