在项目中src/main/java目录下,新建一个文件,命名为com.atguigu.hdfs
创建文件夹
在文件夹里输入代码,创建文件夹
客户端代码常用套路
1、获取一个客户端对象
2、执行相关的操作指令
3、关闭资源
代码如下:
package com.atguigu.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URISyntaxException;
public class HdfsClient {
private FileSystem fs;
@Before
//一般前面和最后的步骤一样,可以封装起来
public void init() throws URISyntaxException, IOException, InterruptedException {
// 连接的集群地址
URI uri = new URI("hdfs://hadoop102:8020");
// 创建一个配置文件
Configuration configuration = new Configuration();
// 用户
String user = "atguigu";
// 获取到了客户端对象
fs = FileSystem.get (uri, configuration,user);
}
@After
public void close () throws IOException {
// 关闭资源
fs.close();
}
/**
* 创建目录
*/
@Test
public void testmkdir () throws URISyntaxException, IOException, InterruptedException {
//2.创建一个文件夹
fs.mkdirs(new Path("/xiyou/huaguoshan"));
}
验证查看创建文件夹是否成功
打开浏览器
输入客户端链接http://hadoop102:9870/
上传文件
在自己电脑D盘任意文件夹下创建一个txt文件;命名为:sunwukong;
在文件中输入内容:sunwukong;
在src/main/java/com.atguigu.hdfs路径下输入上传代码
代码如下
@Test
public void testPut() throws IOException{
// 参数解读; 参数一:表示删除源数据;参数二:是否允许覆盖;参数三:原数据路径;参数四:目的地路径
fs.copyFromLocalFile(true,false,new Path("D:\\HYF\\Hadoop\\sunwukong.txt"),new Path("hdfs://hadoop102/xiyou/huaguoshan"));
}
我自己的理解(可信可不信;哈哈哈哈)
注意:(false/false)或者(true/false)复制过去客户端上,原文件还存在;
(true/true)剪切过去客户端上面,原文件不在。
验证如创建文件夹上述办法一致;