首先,启动Hadoop集群服务
然后在浏览器访问Hadoop,点击Browse the file system 查看HDFS文件系统的目录
可以看到目前HDFS文件系统的目录是空的,没有任何的文件和文件夹,下面开始今天的API操作
一、创建Maven项目
首先,打开IDEA,点击新建项目,在左侧中选择Maven,然后直接点击next
设置项目名称,点击Finish
点击右下角的 Enable Auto-Import(自动导入Jar包文件),一个空的Maven项目就创建完毕啦
二、导入依赖
首先编辑pom.xml(Maven项目的核心文件)文件,添加如下内容,导入依赖(所需jar包)
org.apache.hadoop
hadoop-common
2.7.4
org.apache.hadoop
hadoop-hdfs
2.7.4
org.apache.hadoop
hadoop-client
2.7.4
junit
junit
4.12
IDEA会自动保存文件并且导入依赖包,点击右侧的Maven,展开Dependencies,可以看到四个依赖包以及导入进来了
三、初始化
我们通过junit来进行测试,首先创建一个类,添加如下内容
public class JavaAPI {
// 可操作HDFS文件系统的对象
FileSystem hdfs = null;
// 测试方法执行前执行,用于初始化操作,避免频繁初始化
@Before
public void init() throws IOException {
// 构造一个配置参数对象,设置一个参数:要访问的HDFS的URI
Configuration conf = new Configuration();
// 指定使用HDFS访问
conf.set(“fs.defaultFS”,“hdfs://hadoop01:9000”);
// 进行客户端身份的设置(root为虚拟机的用户名,hadoop集群节点的其中一个都可以)
System.setProperty(“HADOOP_USER_NAME”,“root”);
// 通过FileSystem的静态get()方法获取HDFS文件系统客户端对象
hdfs = FileSystem.get(conf);
}
// 测试方法执行后执行,用于处理结尾的操作,关闭对象
@After
public void close() throws IOException {
// 关闭文件操作对象
hdfs.close();
}
}
注意,上面代码中的参数**“hdfs://hadoop01:9000”**是hadoop配置文件中core-site.xml的配置信息,不记得的可以翻看我以往的hadoop配置文章
四、HDFS代码操作
(1)上传文件到HDFS文件系统
@Test
public void testUploadFileToHDFS() throws IOException {
// 待上传的文件路径(windows)
Path src = new Path(“F:/HDFS/test.txt”);
// 上传之后存放的路径(HDFS)
Path dst = new Path(“/test.txt”);
// 上传
hdfs.copyFromLocalFile(src,dst);
System.out.println(“上传成功”);
}
我在F盘的HDFS文件夹下面创建了个test.txt文本
运行一下测试方法,文件上传成功了
(2)从HDFS下载文件到本地
@Test
public void testDownFileToLocal() throws IOException {
// 待下载的路径(HDFS)
Path src = new Path(“/test.txt”);
// 下载成功之后存放的路径(windows)
Path dst = new Path(“F:/HDFS/test1.txt”);
// 下载
hdfs.copyToLocalFile(false,src,dst,true);
ystem.out.println(“下载成功”);
}
运行一下,下载成功
(3)创建目录
@Test
public void testMkdirFile() throws IOException {
// 待创建目录路径
Path src = new Path(“/HDFS”);
// 创建目录
hdfs.mkdirs(src);
System.out.println(“创建成功”);
}
运行测试方法,创建成功
(4)重命名
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Qxd-1715311969687)]
[外链图片转存中…(img-sc1Lmfam-1715311969688)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!